И снова немного про кросс-платформенную разработку.
В свободное время попробовал написать небольшое приложение на #Flutter
- это и правда классный инструмент, чтобы быстро сделать #MVP, но есть нюансы
- не надо думать, что "написал один раз и забыл". Например решил подключить Firebase. Пришлось открыть xcode и android studio, чтобы добавить нужные файлы и зависимости.
- некоторые фишки нужно дописать, даже если они есть в нативе. FirebaseUI Auth есть для #Web/#Android/#iOS. А чтобы подключить ее к flutter, не залезая в исходники - придется поискать библиотеку или писать самому.
- работает не всегда и не везде. Я, как Андроид разработчик, быстро завел приложение на эмуляторе. А вот iOS отказался работать, потому что конфигурация на первом этапе была сделана не совсем верно.
Итого - писать сразу под обе платформы - отличные подход, если вам нужно быстро приложение под 2+ платформы. Но надо быть готовым, что базовые знания для каждой платформы должны быть. Также, для сборки iOS нужна будет MacOS. И тут не только про flutter, часто в интернете натыкаюсь на вопросы про разные фреймворки из разряда "как заставить работать <фича> на <framework>".
Вот еще пара развернутых мыслей про кросс-платформ: https://tproger.ru/experts/native-or-crossplatform/
В свободное время попробовал написать небольшое приложение на #Flutter
- это и правда классный инструмент, чтобы быстро сделать #MVP, но есть нюансы
- не надо думать, что "написал один раз и забыл". Например решил подключить Firebase. Пришлось открыть xcode и android studio, чтобы добавить нужные файлы и зависимости.
- некоторые фишки нужно дописать, даже если они есть в нативе. FirebaseUI Auth есть для #Web/#Android/#iOS. А чтобы подключить ее к flutter, не залезая в исходники - придется поискать библиотеку или писать самому.
- работает не всегда и не везде. Я, как Андроид разработчик, быстро завел приложение на эмуляторе. А вот iOS отказался работать, потому что конфигурация на первом этапе была сделана не совсем верно.
Итого - писать сразу под обе платформы - отличные подход, если вам нужно быстро приложение под 2+ платформы. Но надо быть готовым, что базовые знания для каждой платформы должны быть. Также, для сборки iOS нужна будет MacOS. И тут не только про flutter, часто в интернете натыкаюсь на вопросы про разные фреймворки из разряда "как заставить работать <фича> на <framework>".
Вот еще пара развернутых мыслей про кросс-платформ: https://tproger.ru/experts/native-or-crossplatform/
Tproger
Натив или кроссплатформа — что выбрать начинающему мобильному разработчику? Отвечают эксперты
Раз можно быстро писать сразу на все платформы, то зачем нативная разработка? Разбираемся в плюсах и минусах обоих подходов с экспертами.
#Android #Composer или шаг на встречу #Flutter.
Composer - набор инструментов, представленный в canary сборке #AndroidStudio, позволяющий декларативно описывать UI.
Это значит, что вы описываете в коде что хотите видеть на экране, а остальное делают за вас. Состояние UI поддерживается консистентно модели данных. Т.е. вы изменили переменное состояние, а UI подстроился под новые "вводные". Вот такой вот продвинутый View Binding.
На мой взгляд идея хорошая, но поддерживать сложные layout может быть проблематично. С другой стороны это может подтолкнуть к упрощению интерфейсов. В общем посмотрим на реализацию в деле. https://developer.android.com/jetpack/compose
Composer - набор инструментов, представленный в canary сборке #AndroidStudio, позволяющий декларативно описывать UI.
Это значит, что вы описываете в коде что хотите видеть на экране, а остальное делают за вас. Состояние UI поддерживается консистентно модели данных. Т.е. вы изменили переменное состояние, а UI подстроился под новые "вводные". Вот такой вот продвинутый View Binding.
На мой взгляд идея хорошая, но поддерживать сложные layout может быть проблематично. С другой стороны это может подтолкнуть к упрощению интерфейсов. В общем посмотрим на реализацию в деле. https://developer.android.com/jetpack/compose
И снова пару слов про кросплатформенную разработку и #Flutter.
Ожидание:
- Написал код один раз, работает везде
- Нажал кнопочку, проект собрался под все платформы
Реальность:
- #Firebase авторизацию заставил работать только с бубном. На форумах писали про "магическую" комбинацию правильных версий библиотек самого Flutter и #firebase_auth.
- #Push уведомления, необходимые также для авторизации (silent push) на iOS получилось настроить только с N-ого раза, удаляя туда-обратно сертификаты в #appstoreConnect
- Библиотека #url_launcher не хотела запускать email клиент на iOS с русскими символами в интенте 😳
- Для того, чтобы собрать проект под #iOS необходим #xCode
Итого:
Разработка под 2 платформы - удобно для #MVP, когда нужно относительно быстро запустить проект под 2 платформы, но это не так просто как может показаться на первый взгляд.
Бонус:
Само приложение можно найти по ссылке: https://stroycash.page.link/appDynLink
Буду рад обсудить детали реализации, ответить на вопросы и услышать ваши отзывы!
Ожидание:
- Написал код один раз, работает везде
- Нажал кнопочку, проект собрался под все платформы
Реальность:
- #Firebase авторизацию заставил работать только с бубном. На форумах писали про "магическую" комбинацию правильных версий библиотек самого Flutter и #firebase_auth.
- #Push уведомления, необходимые также для авторизации (silent push) на iOS получилось настроить только с N-ого раза, удаляя туда-обратно сертификаты в #appstoreConnect
- Библиотека #url_launcher не хотела запускать email клиент на iOS с русскими символами в интенте 😳
- Для того, чтобы собрать проект под #iOS необходим #xCode
Итого:
Разработка под 2 платформы - удобно для #MVP, когда нужно относительно быстро запустить проект под 2 платформы, но это не так просто как может показаться на первый взгляд.
Бонус:
Само приложение можно найти по ссылке: https://stroycash.page.link/appDynLink
Буду рад обсудить детали реализации, ответить на вопросы и услышать ваши отзывы!