Java ios and android

О том, как я написал простое приложение для Android/iOS

Хочу сразу отметить, что это не статья от профессионала, скорее взгляд любителя на мобильную разработку, скажем так, «с нуля». Мое основное занятие — это создание сайтов. В данное время я работаю у провайдера интернета и занимаюсь поддержкой внутреннего биллинга/сайта и так далее (PHP и немного Perl), довольно скучное занятие, скажу я вам. В общем, я обычный провинциальный «программист».

В один прекрасный момент у руководства компании возникла идея сделать мобильное приложение для iPhone, которое могло бы показать баланс пользователю, его статус, возможность взять «обещанный платеж», фактически, дублирование личного кабинета, но чтобы приложение. Не зная про мобильную разработку совсем ничего, идею воспринял с большим энтузиазмом, потому что всегда приятно делать/узнавать что-то новое, думаю, это у всех так.

Придя на работу в один из серых скучных дней, я решился и написал в поиске Google «как сделать мобильное приложение». Это было очень наивно. Кажется, я даже попробовал задать вопрос на Toster, «с чего начать разработку под мобильные приложения», тогда я еще не понимал насколько глупым воспринимается этот вопрос профессионалами.

Довольно быстро я разделил для себя разработку на две части, это был Android и iOS, потому что они совсем разные (поиск подсказал.

Как-то я наткнулся на Phonegap, насколько я понял, пишем на Javascript+html+css, а потом получаем готовое приложение для Android/iOS, но почему-то мне не хотелось пользоваться подобными решениями, во-первых: были непонятные отзывы, кто-то хвалил, кто-то ругал, а во-вторых: мне хотелось попробовать как это изнутри, каково это сделать «нативное» приложение.

План и подготовка

Собственно, идея довольно проста:

  • Логин экран с логином/паролем
  • Основной экран с информацией об абоненте (ФИО, № договора, баланс, статус (Активен, Отключен), есть ли авария на доме, кнопка Активировать обещанный платеж
  • Экран с платежами (зачисления на счет)
  • Экран со списаниями по счету

Для функционирования приложения я написал простейшее API на PHP, скрипт который по определенному запросу отвечал строкой в JSON-формате. Сделать это оказалось элементарно.

Начать решил с Android.

Android

Начал я с установки Android Studio, первоначально смутило количество кнопочек/иконок, но за пару дней я уже был как рыба в воде. Для начала надо было понять как вообще делаются приложения, очень помогает изначальное «Hello world!» которое создается по-умолчанию. Выглядело все достаточно просто и понятно. Погуглив «Как начать разработку в Android Studio», я понял, что надо скачать SDK. Открыв SDK-manager я не понял вообще ничего, ну, точнее, не понял что именно надо делать, поэтому поставил все галочки и ждал пока все скачается. Для чего оно мне нужно я совсем не понимал, общее представление конечно было «чтобы работала поддержка такой-то версии», но почему надо все отдельно качать и выбирать среди сотен галочек — бррр.

Вторым достаточно сложным этапом было запустить приложение на симуляторе. Погуглив, пришлось повозиться с AVD, конечно, потыкашись как слепой котенок я сделал несколько виртуальных устройств. На одном даже запустилось приложение. Честно сказать, симулятор у Android Studio совсем не User-friendly, очень долго я с ним воевал, пытался запускать по-разному, хотел чтобы кнопки управления были на экране и работали, но почему-то не работали. Видимо, сказывалось отсутствие опыта.

Как оказалось, для Android пишут на Java. Про Java я знал только то, что это язык программирования и это не Javascript.
Решил разбить большую задачу на более мелкие.

Теперь возникла ситуация когда у меня, в принципе, все готово, но я не знал как вообще делается приложение, поэтому, погуглив, я понял что никакой нормальной информации на русском языке мне не найти (либо я плохо искал). Информация либо устаревшая, либо не то что мне требуется. Спас меня youtube и знание английского языка. Сделав несколько запросов в ютюбе можно найти массу информации, да еще и с самим процессом — это очень помогло, если бы не обучающие видео, думаю, приложение я бы делал несколько месяцев.

Читайте также:  Видеоредактор с эквалайзером android

Выбирая минимальную версию Android я остановился на 4 что-то там 🙂 (Охват аудитории 90%+ если верить Google).

Опять же разбив свои задачи на более мелкие я искал туториалы в youtube, например: «how to get json in android» или «menu in android studio». Конечно, пришлось пересмотреть штук 30 разных видео и все они были на английском (одно на немецком и одно на китайском — когда показывают не так сложно самому дойти что же говорят :)).

Разработка под Android заняла примерно неделю с момента установки Android Studio. После чего отобрав планшет у сына я смог протестировать свое приложение на реальном устройстве — просто подсоединив его к компьютеру.

Публикация в Google Play

Сначала я думал что будет очень сложно и даже переживал, но как оказалось всего 25$ и фактически без каких-либо серьезных проверок приложение попало в Google Play и через несколько часов было доступно в поиске, публикация заняла около одного дня.

Отдохнув пару дней и поразмыслив, решил что пора реализовать тоже самое приложение под iOS. Но, оказалось, что бесплатная среда разработки xCode может быть запущена исключительно в среде Mac. Пришлось скачать образ виртуальной машины MAC OS Yosemite и запустить ее через VMWare. Сделать это было очень просто и фактически не требовало от меня никаких телодвижений кроме как «ждать».

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

Язык программирования выбрал Swift. Версию iOS минимум 7.1+

В принципе разработка под iOS была более простой, хотя баги симулятора присутствовали, но весь процесс оказался более удобным, нежели под Android. Опять же я открыл youtube и смотрел видео/читал руководства о том, как сделать какую-то вещь. Например, нагуглил прекрасный скрипт который делает slide menu, которого у меня не было в Android. В общем, еще один марафон и за неделю было готово улучшенное приложение, добавил возможность пополнить счет с помощью карты предоплаты и совместил платежи/списания в одно окно.

Использовал тоже самое API (тот же скрипт, что и для Android).

Публикация в iOS

Тут все оказалось не так радужно и просто как в Android. Во-первых, оказалось, что мне требуется реальное устройство для тестирования приложения, а без него никак не опубликоваться. Пришлось искать iPhone и привязать его к профилю тестирования.

Опять же, при создании аккаунта был выбор между «компания» и «индивидуальный разработчик», но начитавшись страшилок про 4+ месяца проверки компаний я решил регистрироваться как индивидуальный разработчик. Сделать это было не сложно, главное оплатить 99$ за аккаунт разработчика iOS со своей кредитной карты чтобы имя совпадало (подсказал поиск). Платеж проходил 2 дня.

После чего пришлось искать целое видео «how to publish in app store» и следовать инструкции, настолько там все непонятно. Какие-то сертификаты, туда — сюда. В общем, не очень удобно, хотя и сделать надо лишь один раз :).

Приложение ушло на проверку и ждало очереди около полутора недель. После чего было принято. Кстати, как показали логи, проверка была примерно такая: Логин -> Баланс -> Платежи -> Баланс. И все, хотя была еще страница «Пополнить баланс», но ее не проверяли (а зря, я там накосячил и пришлось выкладывать новую версию программы 1.1 которую тоже проверяли больше недели).

Выводы

1. Как оказалось это не сложно даже для человека который никогда не использовал Java/Swift/Mac OS.

2. Много новой информации заставляло мой мозг просто переполняться в первые дни и зависать. Помогал только сон, после него я более четко понимал что делать дальше. Не надо бояться таких этапов. Иногда мне казалось что «я вообще ничего не понимаю», были ощущения что я бьюсь головой в бетонную стену. Но на следующий день я решал проблему. Например, в Android, в самом начале у меня возникла ситуация «ничего не работает», когда я подключался к серверу и должен был получать информацию, оказалось, надо было это делать в асинхронном потоке. Потратил целый день.

3. Очень быстрое устаревание руководств/видео уроков. Платформы настолько быстро развиваются, что надо сразу проверять актуальность информации. На русском языке ее очень мало, после нескольких попыток я даже бросил искать и сразу начал штудировать stackoverflow и англоязычный интернет. Youtube со своими видео-уроками просто спас меня! Я открывал видео на одном мониторе и работал на втором. Без базового английского — никуда.

Читайте также:  Что такое обновление по воздуху для андроид

4. Сервисы вопрос-ответ реально помогают! Иногда, впадая в ступор я задавал вопросы и почти сразу получал ответы — очень удобно если находишься в тупике.

5. Apple более чутко относится к публикации приложений, но особых проблем кроме длительного времени я не заметил. Android же делают все очень быстро (зато пускают всех подряд, как я понял).

6. В общей сложности я потратил почти месяц (на разработку около двух недель с перерывами). Стоило ли оно того — думаю да, было очень интересно. Если у вас есть желание — попробуйте, все оказалось не так сложно. У меня нет смартфона Android/iPhone, но и без них все оказалось просто. Симуляторы работают достоверно.

Приложение называется dagotel, но оно создано для клиентов, поэтому дальше логина не пустит. Разве что посмотреть скриншоты.

Понятия не имею, зачем я написал эту статью и какие цели преследовал, но раз написал, решил опубликовать.

Источник

7 Best Frameworks & Libraries for Cross-Platform Android and iOS Apps in 2021

Hello guys, there is a huge demand for developers with knowledge of cross-platform mobile app development frameworks like Flutter and React Native. This is obvious as no one wants to maintain a separate code base for their Android and iOS mobile app.

Having a separate code base is a maintenance nightmare because you have to work twice to put a bug fix or feature into each of your codebases.

Thankfully, Flutter and React Native solve its problem by allowing you to create a native-looking mobile application for both Android and iOS devices using the same code based.

While Flutter and React Native are definitely the leading cross-platform mobile app development framework, they are not the only ones as you also have frameworks like Ionic, Xamarin, and Native Script which you will learn in this article.

5 Best Frameworks to build Cross-Platform Mobile apps

Without wasting any more of your time, let’s dive into the best framework to build cross-platform mobile apps. We’ll also look at the pros and cons of each framework and which you can use based upon your strength. I will also mention relevant courses along the way for further learning.

1. Flutter

This is an excellent framework for developing cross-platform native mobile applications in 2021. Like Golang, TensorFlow, and Angular, Flutter is also from Google, which uses Dart (another programming language from Google) and provides SDK for developing a cross-platform native mobile application.

It’s always been challenging to release your app to different platforms like Android, iOS, and Windows Mobile, as you need to maintain a separate codebase. Flutter solves that problem by allowing you to create mobile apps for both iOS and Android devices using the same codebase.

Flutter has seen a lot of growth in the last 2 years, and it’s now the #1 framework for developing native mobile apps. If you have already decided to learn Flutter and looking for a resource, then I suggest you check out this Flutter & Dart — The Complete Guide [2021 Edition] by Maximilian of Acadmind on Udemy, one of my favorite courses to learn Flutter in 2021.

2. React Native

Apart from Flutter, if there is another framework you can check out for developing native cross-platform mobile apps, then they React Native. It uses React and JavaScript for producing high quality native mobile apps.

It’s the right choice for all web developers who wants to become a mobile app developer and already familiar with technologies like JavaScript and React. If you are one of them, then I suggest you learn React Native in 2021.

Also, there are a lot of resources to learn React Native, both free and paid, but if you ask my recommendation, I highly recommend you check out Stephen Grider’s The Complete React Native + Hooks course, one of my favorite resources to learn React Native online. Stephen is one of the best instructors of Udemy and his teaching style is really great

Читайте также:  Airplay для android приставки

3. Cordova

Apache Cordova is another mobile application development framework originally created by Nitobi. Adobe Systems purchased Nitobi in 2011, rebranded it as PhoneGap, and later released an open-source version of the software called Apache Cordova.

It allows you to use standard web technologies — HTML5, CSS3, and JavaScript for cross-platform development, and one is of the hot technologies to learn in 2021.

If you’d like to learn Cordova in 2021, then please check out Build iOS & Android Apps with Angular and Cordova, one of the exciting courses for learning Cordova.

4. Xamarin

Xamarin is a way to make mobile apps quickly for all platforms with a single, shared C# codebase, build a custom native user interface for each platform, or use Xamarin.Forms to write a single shared user interface across platforms.

It’s owned by Microsoft and quickly becoming popular for creating mobile apps for C, C++, and C# developers.

If you already know one of the C languages and you’re looking for a career in mobile app development, then I strongly suggest you learn Xamarin in 2021, and The Complete Xamarin Developer Course: iOS And Android! is a good course to start with.

5. Firebase

Firebase is not exactly a cross-platform framework for developing mobile apps but a useful framework for building backend. It’s actually Google’s mobile platform that helps you quickly develop high-quality mobile apps and grow your business. You can choose Firebase as a backend for your Android or iOS application.

If you are looking to move into the lucrative business of mobile application development in 2021, then learning Firebase is a very good idea, and Advanced iOS and Firebase: Rideshare is a good place to start.

6. Native Script

If somehow you didn’t like React Native and Flutter and looking for alternatives, then you can also check out Native Script. NativeScript is a free and open-source framework to develop a mobile application for both Apple iOS and Google’s Android platform.

It allows you to build native mobile apps in both TypeScript and JavaScript and using Angular and Vuejs. If you are a frontend developer and already know frameworks like Angular or Vuejs, then Native Script can be the right choice for you.

NativeScript features deep integration with both Angular and Vuejs and allows you to write code on any language, which translates into JAvaScript like TypeScript or CoffeeScript.

If you need resources, I suggest you check out this Native Script + Angular: Build Native iOS and Android Apps course by Maximilian Schwarzmuller on Udemy.

7. Ionic

This is another framework for developing hybrid mobile applications using JavaScript. Ionic also allows you to build cross-platform mobile apps, which means you can create an application for any platform using one codebase.

Ionic Framework is a free and open-source and provides a portable UI toolkit for developing high-quality cross-platforms apps for native iOS, Android, and the web- all from the single codebase. It also has an Ionic React that leverages React for building hybrid mobile apps.

If you want to learn Ionic in 2021, then I suggest you check out this Ionic 4 MasterClass course on Udemy. It’s created by none other than Maximilian Schwarzmuller, one of the best instructors on Udemy and Youtube.

That’s all about some of the best frameworks you can learn for cross-platform mobile app development. You don’t need to learn them all, choose the one which suits your needs.

For example, if you already know JavaScript and React.js then React Native is the best framework for you but if you are coming from Dart background or don’t mind learning a new programming language like Dart then Flutter is a great choice.

Similarly for developers with C.C#, and C++ background can use the Xamarin framework for building cross-platform mobile apps.

Thanks for reading this article so far. If you like this article useful and find these technologies worth learning for mobile app development, then please share it with your friends and colleagues. If you have any questions or feedback, then please drop a note.

Источник

Оцените статью