Настройка AsyncStorage в React Native-приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Настройка AsyncStorage в React Native-приложении
Простая
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Настройка AsyncStorage в React Native-приложении

AsyncStorage — это простейшее key-value хранилище для React Native. Асинхронное, незашифрованное, хранит строки. Подходит для пользовательских настроек, флагов онбординга, кэша лёгких данных. Не подходит для токенов авторизации (нет шифрования), больших объёмов данных, сложных запросов.

Установка

Начиная с React Native 0.59 AsyncStorage вынесен из core в отдельный пакет:

npm install @react-native-async-storage/async-storage

Для iOS: cd ios && pod install. Для Android линковка автоматическая.

Базовое использование

import AsyncStorage from '@react-native-async-storage/async-storage';

// Запись
await AsyncStorage.setItem('onboarding_complete', 'true');

// Чтение
const value = await AsyncStorage.getItem('onboarding_complete');

// Объекты — только через JSON
await AsyncStorage.setItem('user_prefs', JSON.stringify({ theme: 'dark', lang: 'ru' }));
const prefs = JSON.parse(await AsyncStorage.getItem('user_prefs') ?? '{}');

// Удаление
await AsyncStorage.removeItem('onboarding_complete');

// Batch-операции
await AsyncStorage.multiSet([
  ['key1', 'value1'],
  ['key2', 'value2'],
]);

Лимит на Android. По умолчанию AsyncStorage на Android ограничен 6 МБ. При превышении — Database size exceeded the quota error. Увеличить лимит можно через AndroidConfig в android/app/src/main/java/.../MainApplication.java:

new ReactNativeHost(this) {
  @Override
  protected List<ReactPackage> getPackages() {
    // ...
  }
}

Или задать через AsyncStorageExtraConfig.setMaxSizeConfig в MainApplication. Если нужно хранить больше — используйте react-native-mmkv (быстрее и без лимитов) или SQLite через react-native-quick-sqlite.

Обёртка для типобезопасности

Прямые вызовы getItem/setItem с JSON-парсингом разбросаны по коду — плохая практика. Оборачиваем в типизированный сервис:

const StorageService = {
  async get<T>(key: string): Promise<T | null> {
    const raw = await AsyncStorage.getItem(key);
    return raw ? (JSON.parse(raw) as T) : null;
  },
  async set<T>(key: string, value: T): Promise<void> {
    await AsyncStorage.setItem(key, JSON.stringify(value));
  },
  async remove(key: string): Promise<void> {
    await AsyncStorage.removeItem(key);
  },
};

Что не хранить в AsyncStorage

Токены авторизации — используйте react-native-keychain или expo-secure-store. Они хранят данные в iOS Keychain и Android Keystore — зашифровано, защищено биометрией.

Сроки

Установка и базовая настройка: 2–4 часа. С типизированным сервисом и интеграцией в Redux Persist или Zustand: 4–8 часов. Стоимость рассчитывается индивидуально.