Android studio для айфона

О том, как я написал простое приложение для 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 я остановился на 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 со своими видео-уроками просто спас меня! Я открывал видео на одном мониторе и работал на втором. Без базового английского — никуда.

Читайте также:  Old phone для андроид

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

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

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

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

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

Источник

Что выбрать: iOS- или Android-разработку?

Эксперт в Java, Kotlin, Android, SQL, проектировании информационных систем.

Рассказываем, какие особенности есть у разных платформ, почему большое количество девайсов на Android — это проблема для разработчиков, и как потрениться кодить на Swift, если у вас нет компьютера на macOS. Разбираемся вместе с Android-разработчицей в такси Maxim Ариной Мурашевой.

Чем занимаются мобильные разработчики?

Мобильный разработчик отвечает за все этапы создания приложения: разрабатывает его архитектуру и может сделать интерфейс, тестирует его, выкладывает в AppStore или Google Play, устраняет уязвимости, выпускает обновления. Строгого разделения на frontend и backend, как в вебе, в мобильной разработке нет. Разработчик должен уметь работать как с интерфейсом, так и с внутренней логикой приложения.

Вакансии в мобильной разработке делятся на джуниоров, мидлов и сеньоров, а уровень разработчика зависит в первую очередь от навыков и компетенций.

Сколько получают мобильные разработчики?

Медианная зарплата мобильного разработчика — 140 тыс. рублей. Начинающие специалисты с хорошим портфолио могут рассчитывать на зарплату от 80 тыс. рублей. Разработчик на Android c опытом 1–2 года в России получает в среднем около 120 тыс. рублей в месяц, на iOS — около 130 тыс. рублей.

Android vs. iOS: плюсы, минусы и особенности

Android лидирует среди операционных систем во всем мире. По данным statcounter на начало 2021 года, доля Android среди мобильных устройств в мире составляет 74,34% (это около 2,5 млрд активных устройств), iOS — 25,29% (около 1,4 млрд активных устройств). По России картина примерно такая же: 73,38% гаджетов на Android, 26,26% — на iOS.

С одной стороны, разнообразие устройств для Android — это большой плюс, ведь работа для разработчика всегда найдется. Кроме того, чтобы начать работать с этой ОС, никакой дополнительной техники покупать не нужно — писать код можно на любой операционной системе: macOS, Linux или Windows. А вот для разработки на iOS обязательно понадобится техника от Apple.

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

Арина Мурашева: «Как правило, в мобильных приложениях на Android нет сложных расчетов и сильно мудреной логики. Неприятный момент разработки — необходимость поддержки разных устройств. Мои “фавориты” — это телефоны с кастомными прошивками и китайские телефоны».

С iOS проще: количество версий смартфона, размеров экрана и самой операционной системы ограниченно, поэтому сделать приложение, которое одинаково хорошо работает на всех устройствах, намного проще, чем на других платформах.

Все изменения в операционной системе iOS прозрачны — компания ежегодно выпускает подробные гайдлайны по разработке приложений и публикует их на своем сайте.

У Android нюансы разработки могут меняться, и не все библиотеки и ответы на форумах будут актуальны.

Android — это платформа с открытым кодом (доступ к исходному коду есть у всех желающих) и большим развитым сообществом: новичок может получить поддержку или решить проблему, задав свои вопросы на StackOverflow или GitHub.

iOS — более закрытая экосистема, и комьюнити преимущественно англоязычное, но встречаются и русскоязычные форумы.

В Google Play разовая плата за аккаунт разработчика стоит $25. Публикация приложений происходит быстро и, как правило, без участия модераторов. В AppStore потребуется ежегодно продлевать доступ к аккаунту разработчика за $99.

Но есть особенности: в Google Play приложение и аккаунт могут заблокировать без объяснения причин, а техподдержка отвечает редко, размыто и односложно. У AppStore публикация приложения может занять неделю — модераторы проверяют его вручную, — но техподдержка работает оперативнее.

Читайте также:  Тесты по русскому языку для андроида

Есть разница и в пользовательском поведении: считается, что пользователь Android не привык платить за приложение или дополнительные функции в нем, поэтому авторы приложений в основном зарабатывают на рекламе внутри него. С iOS же обратная ситуация: покупать приложение в AppStore — нормальная практика для пользователя. Например, как показывает исследование myTracker (система аналитики и атрибуции на базе технологий Mail.ru Group), доход от пользователей, совершающих внутриигровые покупки, составляет $48,82 на iOS и $29,69 на Android. Самая большая разница — в категории фитнес-приложений: пользователи iOS платят за подписку на них в 11 раз чаще, чем владельцы Android.

Что нужно знать мобильным разработчикам?

Есть инструменты, с которыми должен хорошо работать любой разработчик, независимо от операционной системы. Он должен уметь работать с Git — распределенной системой управления версиями — и веб-сервисами для хостинга IT-проектов и совместной их разработки, например, GitHub. Важно уметь пользоваться популярными библиотеками и фреймворками и понимать, как передаются данные через протоколы REST и HTTP, а также работать с базами данных.

Также требуется уметь создавать интерфейс приложения на основе макета, знать, как создать сетевой запрос, как обработать данные — в частности, в формате JSON (текстовый формат обмена данными, основанный на JavaScript), уметь создавать и использовать протоколы, подключать базы данных к приложению, знать архитектурные подходы и понимать способы хранения данных.

Что нужно знать Android-разработчику?

В требованиях к вакансии Android-разработчика обычно пишут, что он должен обязательно знать XML и Android SDK. Из языков чаще всего требуется Java, часто к нему прибавляется Kotlin. В любом случае, знание Java — это хороший старт для начинающего разработчика, поскольку на этом языке вы освоите основные концепции объектно-ориентированного программирования (ООП). Это методология программирования, основанная на представлении программы в виде совокупности объектов. Зная ООП, можно быстрее выучить другой язык.

Также начинающему разработчику понадобится изучить файловую структуру и принципы работы OS Android.

Станьте востребованным специалистом: освойте с нуля программирование на Java и Kotlin, мобильную разработку и UX/UI для Android. Наш карьерный центр поможет с трудоустройством.

Дополнительная скидка 5% по промокоду BLOG.

Что нужно знать iOS-разработчику?

Для разработки на iOS понадобится знание языков Objective-C и Swift. Сейчас в основном кодят на Swift, который считается более функциональным.

Для создания приложения понадобится компьютер с операционной системой macOS. Но даже если его нет, потренироваться кодить на Swift все равно можно. Первый вариант — скачать на официальном сайте языка GNU/Linux (операционные системы на основе ядра Linux и системных библиотек GNU) с установленным Swift (есть официальные пакеты под Ubuntu, CentOS и Amazon Linux). Второй — скачать на GitHub Windows с неофициальным пакетом Swift for Windows. Но для того чтобы собрать приложение, придется купить технику Apple.

Освойте с нуля программирование на Swift, мобильную разработку и UX/UI для iOS. Дополнительная скидка 5% по промокоду BLOG.

С чего начать?

Первые шаги в мобильной разработке выглядят примерно так:

  1. Освоить один из языков программирования. В зависимости от ОС это Java/Kotlin или Objective-C/Swift.
  2. Изучить Android Developer Guides или Apple Development Guidelines и попробовать написать простое приложение.
  3. Сверстать пару прототипов в онлайн-сервисе для разработки интерфейсов и прототипов, например Figma, Adobe XD или Sketch.
  4. Опубликовать приложение в Google Play или AppStore.
  5. Собрать и разместить портфолио на GitHub.

Всему этом можно научиться на наших курсах: iOS-разработчик и Android-разработчик.

Сложно ли перейти с одной на другую платформу?

Это возможно, но многое все равно придется учить заново. Например, осваивать профильный язык программирования.

Android-разработчица в такси Maxim

«Усилия, конечно, приложить придется. Нужно будет учить новый язык и другие инструменты разработки. Однако чем больше работаешь, тем менее важно, с какими технологиями работать. Есть те, с которыми работать приятно, есть те, с которыми не очень, но в целом сменить направление всегда можно».

Полезные ссылки

  • Для новичков у Android есть курсы для разработчиков на официальном сайте и краудсорсинговый гид — подробное руководство по созданию приложений, их дизайну и тестированию.
  • Блог разработчиков Android — тут выходят статьи с разбором обновлений и запуска новых функций.
  • Гайд Human Interface Guidelines от Apple о принципах дизайна приложений.
  • Apple XCode — среда для разработки для iOS.
  • Android Studio — среда для разработки для Android.

Текст подготовила: Мария Осина

Эксперт в Java, Kotlin, Android, SQL, проектировании информационных систем.

Источник

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