Какое мобильное приложение мне стоит выбрать?

Привет всем! Прошу помочь с советом по разработке мобильного приложения для iOS и Android. 

Вот что я имею в виду: 

1. Какие API будут необходимы? 
   - Геолокация
   - Пуш-уведомления
   - Контакты
   - Аудио
   - Файловая система

Я считаю, что React Native может быть наилучшим выбором, поскольку я уже знаком с React, а React Native позволяет разрабатывать кросс-платформенные приложения. Однако я также рассматриваю возможность создания PWA (прогрессивных веб-приложений), так как на изучение React Native может уйти много времени, и кажется, что PWA имеет все нужные функции. 

Из-за отсутствия опыта в разработке мне сложно сделать окончательный выбор. Мне также известно о Ionic/Cordova, но мои знания об этих технологиях достаточно ограничены. 

Еще одним важным аспектом является возможность публикации приложения в магазинах: насколько я понимаю, PWA также может быть опубликован, если использовать Capacitor.

Кроме этого, у меня нет Mac, но я знаю, что есть сервисы, которые могут помочь в создании приложения. Что касается разработки, как можно запустить iOS-симулятор? В данный момент я пытаюсь поднять macOS на виртуальной машине. Есть ли какие-то ценные советы по этому вопросу?

Приложение будет в формате «знакомства», с чатами, карточками и другими функциями. 

Поделитесь, пожалуйста, своим опытом и мыслями по этому поводу. Заранее большое спасибо!
  • 29 октября 2024 г. 18:42
Ответы на вопрос 3
Привет! Похоже, у тебя уже есть неплохое понимание того, что тебе нужно для разработки приложения. Давай разберем некоторые твои вопросы и аспекты выбора технологий.

### 1. Выбор между React Native и PWA

**React Native**:
- Учитывая, что ты уже знаком с React, это будет хорошим выбором. React Native позволяет создавать нативные приложения для iOS и Android и предоставляет доступ к большинству нативных API, включая геолокацию, пуш-уведомления, доступ к файлам и т.д.
- Приложения, созданные с помощью React Native, могут иметь гораздо более высокую производительность и более лучший пользовательский интерфейс по сравнению с PWA.

**PWA (Прогрессивные веб-приложения)**:
- PWA разработаны для работы в браузере, но они могут использовать множество функций устройства, включая геолокацию и пуш-уведомления, однако выполнение некоторых нативных функций может оказаться ограниченным.
- Для реализации PWA не нужно много времени на изучение, но ты можешь столкнуться с ограничениями платформы, особенно в iOS, где поддержка PWA не так сильна, как в Android.

Если твоя основная цель — публикация приложения в магазинах, React Native будет предпочтительным выбором, так как PWA не может использовать все успешные особенности нативного приложения, особенно когда речь идет о характере приложения для знакомств.

### 2. Разработка и эмуляция iOS

- Так как у тебя нет Mac, возможно использование облачных сервисов, таких как MacStadium или CodeMagic, которые могут предоставить доступ к Xcode и iOS-симулятору для тестирования твоего приложения.
- Обратите внимание, что для окончательной публикации в App Store вам все равно потребуется Mac.

### 3. Разработка под PWA и Capacitor

Если решишь создать PWA, Capacitor действительно может помочь вам упаковать его для публикации в магазинах приложений. Он позволяет использовать некоторые нативные функции, но подход все-таки будет более упрощенным по сравнению с React Native.

### 4. Рекомендации по API

Для твоего приложения с чатами и карточками:
- **Геолокация**: Используй встроенные геолокационные API.
- **Пуш-уведомления**: Firebase Cloud Messaging (FCM) для Android и Apple Push Notification service (APNs) для iOS.
- **Контакты**: Можешь использовать сторонние библиотеки для работы с контактами.
- **Аудио**: Библиотеки React Native, такие как `react-native-audio`, могут помочь.
- **Файловая система**: `react-native-fs` или аналогичные библиотеки.

### Заключение

Если ты опытен в React и хочешь развивать более производительное и нативное приложение, **React Native** будет наиболее подходящим вариантом. PWA может быть хорошим выбором для более простых проектов или если ты хочешь минимизировать время обучения.

Удачи в разработке! Если у тебя будут еще вопросы, не стесняйся спрашивать!
Сейчас пытаюсь на виртуалке macOS поднять. Есть какие-то хорошие советы по этому поводу?

Только старые версии ось-х и только на интелловском процессоре. На АМД тоже можно, но только на одном ядре, медленно и многими днями секаса чтобы просто поставить и оно хотя бы работало. Либо арендовать мак. При общей стоимости разработки ПО - копейки.
1. PWA - это недоприложения. Не нужно это если речь не об узком круге пользователей. 

2. В твоём случае я бы наверное остановился на React Native, но есть и вариант с no/low code конструкторами типа Flutter Flow или AppMaster.

Каким образом можно запустить симулятор IOS?

Есть сервисы почасовой (а то и поминутной) аренды.
Похожие вопросы