У меня скорее негативный опыт, с Flutter. Первое впечатление крайне положительное, разочарование приходит со временем. Основное - крайне низкое качество системы в целом. Речь не о том что большинство плагинов тяп ляп собранные на коленке несовместимые ни между собой ни между версиями флатер ни между другими плагинами поделия. Речь о качестве самих библиотек разрабатываемых гуглом. Такое чувство что пишут их на коленке, даже в гугле, причем что странно не зная андроид. Например плагин запуска сервиса, начал запускаться после рестарта версии к восьмой. GRPC плагин выжирал батарею и постоянно терял коннект. Сыпал рандомными ошибками. Периодически гугл перевыпускает плагин, сразу прыгая на версию 2.0 например. И если потерянные коннекты пропали - жор батареи - нет. На айос рендеринг картинок "глитчит" при скроллинге. И жор жор жор батареи. Просто стыдно, открываешь приложение, которое не делает ничего, и оно жрет процентов 10 даже в спящем режиме. Сам флаттер работает совсем по разному в дебаг режиме и в скомпилированном режиме. В дебаг режиме просто ад, в скомпилированном получше. Естественно в скомпилированном режиме дебажить нельзя и тут здраствуй PHP стайл дебага с виджетом потребления ресурсов и тп. Постоянные обновления - приносят постоянную несовместимость и постоянные новые ошибки. Те обновление закрывает одну проблему но создает две новых. Гугл не мелочится и меняет версию дарт с 1.0 на 2.0 - превращая в мусор все что было написано на 1.0. Это сейчас неактуально но характеризует подход. Все будет постоянно ломаться, совместимость теряться и тп. БОльшей части библиотек нет от слова совсем. Работы с сокетами - нет. Работы с чтением почтового протокала - нет. Те сам дарт никому из нормальных разработчиков не вперся и библиотек под него не пишут. Фича с автообновлением (Hot Reload) -отваливается через день. Как только проект становится чуть больше hello world - все ломается и глючит - и отлаживать придется по старинке. Плюс в дебаг режиме все работает по другому - смысла в нем дебажить нет. Ну разве что UI.
Не влезло: Сам язык - напоминает набор заклинаний. Это не язык, в нем нет продуманной системы классов как в яве или продуманной системы библиотек как в Go. Dart это миллион несовместимых между собой "синтаксических сахарков". В каждом виджете, в каждом методе -он свой. Те каждый разработчик делал каждую часть - по своему - без единной логики - и все что вам остается - это выучить этот набор заклинаний. Работа с комьюнити - на уровне - удалить тикет. Те вы пишите ишью - команда флатер просто его удаляет. На одну и ту же проблему - сотни идентичных тикетов висят годами. На все пишут единообразные заклинания -типа проблема с айос, проблема в симуляторе айос, проблема в настройках симулятора айос - или просто удаляют, закрывают и тп. Пилит фреймворк команда хрома. Чувствуется по массивности подхода. Простые решение - это не для нас. Просто берут мегабайтный кусок кода и втыкают в проблему чтоб ее заткнуть (ну, по ощущениям). В итоге, проект я доделал - но выкладывать его стыдно. Он жрет батарею. Глитчит на айос. Единственное что в нем хорошо - он визуально нарядный. В итоге из плея удалил, и в флатер больше не ногой. Пруф
Извините, но ваш комментарий выглядит как мнение человека далекого от мобильной разработки - на коленке собравшего приложение за 2 часа пробежавшись по верхам и сложив субъективную негативную оценку. Если приложите пруфы про "удаление тикетов", и "мегабайтные куски кода для затыкания проблемы" буду благодарен.
Про себя скажу, что с 2008 года занимаюсь нативной андроид разработкой, специализация - безопасность, с флаттер начинал работать в пет-проджекте с самой первой альфы. Сейчас занимаюсь разработкой финтех приложения на флаттер средней сложности в команде талантливых ребят.
Ну а теперь по пунктам.
1. Про собранные гуглом на коленке комментарий опущу, вы видно не привыкли читать хороший код, если есть примеры гавнокода - welcome.
2. "Сам флаттер работает совсем по разному в дебаг режиме и в скомпилированном режиме. В дебаг режиме просто ад, в скомпилированном получше. " " Плюс в дебаг режиме все работает по другому - смысла в нем дебажить нет. Ну разве что UI. " две реплики некомпетентного человека.
Кодовая база для разных режимов абсолютно одинаковая (кроме отличий обоснованных build flavors либо CI), приложение работает абсолютно идентично за исключением: * в дебаг режиме возможно пользоваться хот релод, из-за этого есть органичение на количество кадров рендера + расширенное логгирование + отсутствие минификации и обфускации * для отладки релизного сборки приложения можно воспользоваться как минимум 3 методами - использовать build mode https://flutter.dev/docs/testing/build-modes - профайлить приложение на ios девайсе предварительно скомпилировав dart code, а потом запустить через xcode в profile режиме - воспользоваться DartDevTools
4. "Работы с чтением почтового протокала - нет." Заблуждение, для дарт существует большое количество пакетов, которые позволяют работать полноценно с актуальными почтовыми протоколами, для флаттер есть решение, оно в альфе но базовые вещи работают стабильно: * https://pub.dev/packages/imap_client
5. "Фича с автообновлением (Hot Reload) -отваливается через день. Как только проект становится чуть больше hello world - все ломается и глючит - и отлаживать придется по старинке" - конечно, когда вы добавляете новые файлы, меняете структуру проекта или работаете с кодогенерацией, хотрелод не будет работать, про все эти моменты также написано в оф. документации. Задача хотрелоад позволять сокращать время разработки за счет моментально внесения изменений в определенном контексте, причем работает даже в DEBUG режиме, что позволяет менять не только UI, и видеть его ребилд, а также и вносить изменения в business logic на лету.
Готов подискутировать по всем пунктам, а также ответить на сложные вопросы от разработчиков.
У меня скорее негативный опыт, с Flutter. Первое впечатление крайне положительное, разочарование приходит со временем. Основное - крайне низкое качество системы в целом. Речь не о том что большинство плагинов тяп ляп собранные на коленке несовместимые ни между собой ни между версиями флатер ни между другими плагинами поделия. Речь о качестве самих библиотек разрабатываемых гуглом. Такое чувство что пишут их на коленке, даже в гугле, причем что странно не зная андроид. Например плагин запуска сервиса, начал запускаться после рестарта версии к восьмой. GRPC плагин выжирал батарею и постоянно терял коннект. Сыпал рандомными ошибками. Периодически гугл перевыпускает плагин, сразу прыгая на версию 2.0 например. И если потерянные коннекты пропали - жор батареи - нет. На айос рендеринг картинок "глитчит" при скроллинге. И жор жор жор батареи. Просто стыдно, открываешь приложение, которое не делает ничего, и оно жрет процентов 10 даже в спящем режиме. Сам флаттер работает совсем по разному в дебаг режиме и в скомпилированном режиме. В дебаг режиме просто ад, в скомпилированном получше. Естественно в скомпилированном режиме дебажить нельзя и тут здраствуй PHP стайл дебага с виджетом потребления ресурсов и тп. Постоянные обновления - приносят постоянную несовместимость и постоянные новые ошибки. Те обновление закрывает одну проблему но создает две новых. Гугл не мелочится и меняет версию дарт с 1.0 на 2.0 - превращая в мусор все что было написано на 1.0. Это сейчас неактуально но характеризует подход. Все будет постоянно ломаться, совместимость теряться и тп. БОльшей части библиотек нет от слова совсем. Работы с сокетами - нет. Работы с чтением почтового протокала - нет. Те сам дарт никому из нормальных разработчиков не вперся и библиотек под него не пишут. Фича с автообновлением (Hot Reload) -отваливается через день. Как только проект становится чуть больше hello world - все ломается и глючит - и отлаживать придется по старинке. Плюс в дебаг режиме все работает по другому - смысла в нем дебажить нет. Ну разве что UI.
Не влезло:
Сам язык - напоминает набор заклинаний. Это не язык, в нем нет продуманной системы классов как в яве или продуманной системы библиотек как в Go. Dart это миллион несовместимых между собой "синтаксических сахарков". В каждом виджете, в каждом методе -он свой. Те каждый разработчик делал каждую часть - по своему - без единной логики - и все что вам остается - это выучить этот набор заклинаний. Работа с комьюнити - на уровне - удалить тикет. Те вы пишите ишью - команда флатер просто его удаляет. На одну и ту же проблему - сотни идентичных тикетов висят годами. На все пишут единообразные заклинания -типа проблема с айос, проблема в симуляторе айос, проблема в настройках симулятора айос - или просто удаляют, закрывают и тп. Пилит фреймворк команда хрома. Чувствуется по массивности подхода. Простые решение - это не для нас. Просто берут мегабайтный кусок кода и втыкают в проблему чтоб ее заткнуть (ну, по ощущениям). В итоге, проект я доделал - но выкладывать его стыдно. Он жрет батарею. Глитчит на айос. Единственное что в нем хорошо - он визуально нарядный. В итоге из плея удалил, и в флатер больше не ногой. Пруф
Извините, но ваш комментарий выглядит как мнение человека далекого от мобильной разработки - на коленке собравшего приложение за 2 часа пробежавшись по верхам и сложив субъективную негативную оценку. Если приложите пруфы про "удаление тикетов", и "мегабайтные куски кода для затыкания проблемы" буду благодарен.
Про себя скажу, что с 2008 года занимаюсь нативной андроид разработкой, специализация - безопасность, с флаттер начинал работать в пет-проджекте с самой первой альфы. Сейчас занимаюсь разработкой финтех приложения на флаттер средней сложности в команде талантливых ребят.
Ну а теперь по пунктам.
1. Про собранные гуглом на коленке комментарий опущу, вы видно не привыкли читать хороший код, если есть примеры гавнокода - welcome.
2. "Сам флаттер работает совсем по разному в дебаг режиме и в скомпилированном режиме. В дебаг режиме просто ад, в скомпилированном получше. "
" Плюс в дебаг режиме все работает по другому - смысла в нем дебажить нет. Ну разве что UI. "
две реплики некомпетентного человека.
Кодовая база для разных режимов абсолютно одинаковая (кроме отличий обоснованных build flavors либо CI), приложение работает абсолютно идентично за исключением:
* в дебаг режиме возможно пользоваться хот релод, из-за этого есть органичение на количество кадров рендера + расширенное логгирование + отсутствие минификации и обфускации
* для отладки релизного сборки приложения можно воспользоваться как минимум 3 методами
- использовать build mode https://flutter.dev/docs/testing/build-modes
- профайлить приложение на ios девайсе предварительно скомпилировав dart code, а потом запустить через xcode в profile режиме
- воспользоваться DartDevTools
3. Работы с сокетами - нет.
Абсолютное заблуждение, существуют как решения из коробки, так и от крупных вендоров/компаний
* https://flutter.dev/docs/cookbook/networking/web-sockets
* signalR - https://pub.dev/packages/signalr_client
* https://pub.dev/packages/websocket_manager
4. "Работы с чтением почтового протокала - нет."
Заблуждение, для дарт существует большое количество пакетов, которые позволяют работать полноценно с актуальными почтовыми протоколами, для флаттер есть решение, оно в альфе но базовые вещи работают стабильно:
* https://pub.dev/packages/imap_client
5. "Фича с автообновлением (Hot Reload) -отваливается через день. Как только проект становится чуть больше hello world - все ломается и глючит - и отлаживать придется по старинке" - конечно, когда вы добавляете новые файлы, меняете структуру проекта или работаете с кодогенерацией, хотрелод не будет работать, про все эти моменты также написано в оф. документации.
Задача хотрелоад позволять сокращать время разработки за счет моментально внесения изменений в определенном контексте, причем работает даже в DEBUG режиме, что позволяет менять не только UI, и видеть его ребилд, а также и вносить изменения в business logic на лету.
Готов подискутировать по всем пунктам, а также ответить на сложные вопросы от разработчиков.