Инструменты мобильной разработчки

Итак тут речь о средствах мобильной разработки, об инструментах разработчика.

фотка 1

Инструментарий на самом деле решает 90% дела.

По нашему личному опыту, что нам бы хотелось бы в идеале? 

Быстрая сборка проектов.

Быстрая и удобная отладка, иначе у нас не хватит никакого времени.

Открытый исходный код всех применяемых библиотек, чтобы можно было понять как все работает и внести свои усовершенствования.

Кроссплатформенность : Сборка из одних исходников под разные платформы (Windows, linux, android, ios).

Итак у нас исторически сложились отношения примерно с таким функционалом: Qt 4, openssl, sqlite.И программируем мы пока под Windows на cpp , тулчейн msvc-2010.

Плюс используем серверную часть в интернете на php, mysql.

И надо бы задуматься об Android Google и Ios Apple. Тут надо понимать, что это суперконкуренты, которые борются друг с другом за лидерство.

И сама идея создать один  инструмент для программирования на сразу под эти две платформы никогда не будет поддержана ни тем ни другим (что логично не правда ли).

Ios  и  Android  почти монополисты на рынке мобильных ОС. И это значит все играют по их правилам. Далее мы не будем касаться других ОС типа Symbian и т.д.

На мобильном направлении очень много инструментов, разных фреймворков, IDE.

Среда разработки это обычно инструмент для сборки программ. Фреймворк это обычно ещё набор базовых библиотек для разработки.

Попробуем немного разобраться:

Android Studio

фотка 2

Android Studio от самого Google. Язык из seeначально Java, хотя это не собственность гугл, а принадлежит Оракл.

Kotlin (Jetbrains) язык  Kotlin (строготипизированный), но и он является продуктом Российских разработчиков,  совместим с Java, использует ту же JVM, KMM, для андроид.IntelliJ IDEA. (Community free, Ultra не бесплатная). Интеграция с Google Android Studio нативная.

Flutter, Dart

Фреймворк Flutter и язык Dart. Флаттер называют также Google Ui toolkit. Это новая разработка от того же Гуугла. Написан на языке С плюс плюс, реализует быстрый рендеринг (отрисовку). Язык Dart выполняется на виртуальной машине JIT Кроссплатформенный. Самое интересное, что не только для андроид, но и для  ios, Виндоус и т.д 

Вкачестве редактора тот же Андроид Студио и можно Visial Code от майкрософта.

React native

React Native, язык JaveScript , кроссплатформенный, React библиотека ui. От Facebook, Instagram и ещё кое-кого. VM транслирует javascript в байткод.

Ios Apple

фотка 3

Ios от Apple, изначально язык ObjectiveC.

Apple это синоним дорого. Как для пользователей, так и для разработчиков.

Современный язык для Ios это Swift.  

В отличии от Google компания Apple создала полностью самостоятельную ОС и свой язык или уже языки программирования.

Compose for Ios.

Javascript тоже вариант для мобильной разработки. Он не заточен под конкретную ОС. Для javascript нужна не VM , а  какой-то движок, что конечно влияет на скорость выполнения.. Исходный код открыт. Защищённость программ соответственно слабая.

Небольшие выводы.

В результате все языки и IDE, которые мы упоминали выше получается принадлежат каким-то глобальным фирмам.

И теперь пора вспомнить о С++. Этот язык принадлежит коммьюнити, то есть общественное достояние. У него нет  виртуальных машин и JIT, и поэтому на его продажи не заработаешь. Он даёт свободу создавать под разные платформы потому, что просто есть С компиляторы под эти платформы и отладчики, плюс любой текстовый редактор и больше вам ничего не надо. А далее получится то, что повторяет вам Стауструп, ваша программа будет работать стабильно десятки лет на конкретной платформе.