#java #android #ios #кроссплатформенность #мобильные_приложения
Я программирую под Android и сейчас делаю простенькое мобильное приложение, по функционалу
напоминающее обычный мессенджер.
В этом приложении я использую клиент-серверную архитектуру. Сервер написан на Java
с расчётом на то, что будет развёрнут на Google App Engine. Нативный клиент под Android
делает HTTP запросы к серверу, а сервер посылает сообщение через Google Cloud Messaging
адресату или адресатам или отвечает на запрос объектами в JSON-формате. Кэш в СУБД
SQLite.
И вот сейчас (когда приложеньице уже почти готово =)) я начал задумываться как же
мне портировать (хотя бы часть функционала) на другие платформы: iOS и Windows Phone.
Писать под каждую платформу своё приложение с нуля, мне кажется, будет затратным, т.к.
я раньше не программировал под iOS и Windows Phone. Пожалуйста, если вы обладаете богатым
опытом в области создания кросс-платформенных мобильных приложений, подскажите, как
можно упростить создание и поддержку таких приложений.
Вот, что я нашёл:
Delphi XE | Delphi, native compilation | Delphi developers
Unity3D | C#, UnityScript, Boo | Game developers
Сейчас я смотрю в сторону j2objc, JUniversal и Appery.io (грубо говоря, обёртка над
PhoneGap). И у меня такой вопрос: Какой из этих продуктов наиболее подходит для моего
приложения?
В частности,
Смогу ли я использовать вместе с ними RetroFit и ActiveAndroid?
Будут ли работать Push Notifications (GCM / APN / MPNS)?
ps. Я рассматривал и отказался от Unity3D и Delphi XE, потому что, мне кажется, они
сильно увеличат размер моего небольшого приложения. Я отказался от Xamarin, потому
что я не .Net-разработчик.
Ответы
Ответ 1
Месяц работаю на Xamarin, пока все нравится. Если вы сторонник ООП, тогда лучшего
и более охватывающего кросп. средства не найти. Сложные приложения пишутся без особых
проблем, не говоря уже о простых. Компилятор работает шустро, я бы сказал не уступает
оригинальной андроид студии. Очень удобна работать с отладкой и профилированием. Если
же вы сторонник веб технологий то я бы смотрел в сторону кордовы.
Ответ 2
Flutter — новый инструмент от Google, позволяющий разработчикам писать кроссплатформенные
мобильные приложения, которые можно запускать как на Android, так и на iOS. Ещё один
плюс Flutter — он ориентирован на Material Design и предоставляет множество возможностей
для работы с ним.
С чего начать?
YouTube - Introducing Flutter
Хабрахабр - Введение и установка
flutter.io - Get Started
Ответ 3
React Native — это фреймворк для разработки кроссплатформенных приложений для iOS
и Android. История React Native довольно увлекательна: родившийся как внутренний проект
Facebook в 2013-м, он вскоре стал одним из самых популярных фреймворков. Теперь же
его код открыт и доступен на Github.
React Native очень дружелюбен к разработчикам с web бэкграундом и не требует изучения
языков нативной разработки под iOS и Android – learn once, write anywhere*.
С чего начать?
Youtube - Что такое React Native?
Хабрахабр - Создаем приложение на JavaScript с помощью React Native
Getting Started Guide
* Выучи один раз, пиши под что угодно.