This is an Expo project created with create-expo-app.
-
Install dependencies
npm install
-
Start the app
npx expo start
In the output, you'll find options to open the app in a
- development build
- Android emulator
- iOS simulator
- Expo Go, a limited sandbox for trying out app development with Expo
You can start developing by editing the files inside the app directory. This project uses file-based routing.
When you're ready, run:
npm run reset-projectПроект использует SQLite для хранения данных. Схема базы данных включает две таблицы:
- id (INTEGER, PRIMARY KEY, AUTOINCREMENT): Уникальный идентификатор метки.
- latitude (REAL, NOT NULL): Широта метки на карте.
- longitude (REAL, NOT NULL): Долгота метки на карте.
- created_at (DATETIME, DEFAULT CURRENT_TIMESTAMP): Дата и время создания метки.
- id (INTEGER, PRIMARY KEY, AUTOINCREMENT): Уникальный идентификатор изображения метки.
- marker_id (INTEGER, NOT NULL): Идентификатор метки, к которой относится изображение (внешний ключ на markers).
- uri (TEXT, NOT NULL): URI изображения метки.
- created_at (DATETIME, DEFAULT CURRENT_TIMESTAMP): Дата и время создания записи о изображении.
В данном проекте используется стандартный подход к обработке ошибок в TypeScript. Операции с базой данных обёрнуты в блоки try...catch, что позволяет ловить и логировать ошибки, возникающие во время инициализации базы данных или выполнения запросов. Например, если инициализация базы данных не удалась, ошибка выводится в консоль, а затем выбрасывается дальше для обработки на более высоком уровне.
try { const db = await SQLite.openDatabaseAsync('imagemarkers.db'); // операции с базой данных } catch (error) { console.error('Ошибка инициализации базы данных:', error); }