image

Никаких записей курсов — только живое общение

Курсы

Наши курсы

image

TeachMeSkills в Ютубе

Здесь мы публикуем годный контент, подробные разборы и практический опыт учителей

Мобильная разработка: iOS, Android или Flutter

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

17 июля 2023 · 5 минут
Расскажи об этом в соцсетях
Фото выпускника

Карина Старкова

Редактор новостей об образовании

Пока количество мобильных пользователей продолжает расти (сейчас это почти 70% людей в мире), а бизнес желает буквально находиться в руках своих клиентов — профессия мобильного разработчика будет востребована. 

Некоторые из основных направлений деятельности разработчиков:

  • мобильные игры 
  • образовательные приложения
  • электронная коммерция 
  • корпоративные приложения
  • банковские продукты
  • социальные сети, мессенджеры — и остальное, связанное с коммуникациями 
  • фото- и видеоредакторы

 

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

 

Какие бывают виды мобильной разработки 

Мобильную разработку делят на нативную и кроссплатформенную

Ключевая разница заключается в том, что нативные программы создают под определенную операционную систему: iOS или Android. А кроссплатформенная предназначена сразу для нескольких платформ. 

Возникает логичный вопрос — актуальна ли вообще нативная разработка? Ведь для бизнеса быстрее и дешевле реализовывать проекты в рамках кроссплатформенной разработки. 

Ответ: актуальна.  

Чем сложнее, популярнее (много пользователей), «тяжелее» или уникальнее приложение, тем выше вероятность в необходимости нативной части. 

Поэтому все три направления востребованы на рынке — и вам нужно только выбрать, какое из них ближе.

 

— Говоря о недостатках кроссплатформенности и Flutter, часто отмечают не самое развитое комьюнити. Это так? И если так, как ты с этим справляешься?  


— Здесь я не соглашусь, пожалуй. Flutter — довольно молодая технология, но очень быстро набравшая популярность. Поэтому и комьюнити очень быстро выросло. Я занимаюсь разработкой на Flutter примерно 3.5 года и не могу вспомнить такого, чтобы я не мог найти ответы на какие-то вопросы по флаттеру. Довольно много есть различных библиотек для Dart (язык программирования, созданный компанией Google) и Flutter, которые разрабатываются и поддерживаются комьюнити, — делится своим опытом Александр Шинкевич, преподаватель курса Мобильный разработчик на Flutter в TMS.

 

Какие знания нужны, чтобы стать мобильным разработчиком: hard и soft skills 

Рассмотрим требования hard skills, которые выдвигают компании для джуниор-разработчиков в 2023 году. 

Для iOS-разработки это:

  • знание Swift,
  • базовые знания Git,
  • проектирование интерфейса с помощью кода,
  • опыт работы с RxSwift (библиотека для работы с асинхронным кодом для языка Swift) и MVVM (шаблон проектирования архитектуры приложения),
  • понимание, как работает REST API.

 

— Что бы ты посоветовал почитать ребятам до курсов? Возможно, это какие-то книги или просто статьи на определенные темы, которые облегчат процесс обучения?

 

— Вообще чтение каких-то книг по iOS-разработке перед курсом, тем более с разнящимся планом, может только помешать обучению и навести в голове кашу у неподготовленного ученика, поэтому я рекомендую начинать с чего-то общего.

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

Если это для вас слишком сложно и непонятно, есть книжка про Swift с документацией от разработчиков Apple, называется «Swift Programming Language». Перевод на русский язык можно найти здесь. В этой книжке просто расписаны все основные инструменты языка с документацией к использованию. Достаточно сухая книжка с прямыми инструкциями, но все еще сильно отличается в сторону дружелюбности к начинающим разработчикам относительно документаций других языков. Тут есть много практики с примерами аналогий разработки и подходов из реальной жизни. 


Читать советую также, как и совершенный код. Как только перестаете понимать, переходите к следующей теме. Каждая следующая тема, скорее всего, при первом прочтении кончится для вас раньше предыдущей, и это нормально, — советует Юрий Возлеев, преподаватель на курсе iOS разработчик в TMS.

 

Для джуниор Android-разработчика требования в основном следующие:

  • знание Kotlin,
  • опыт разработки UI-интерфейсов в Material Design,
  • уверенные знания: Collections, Multithreading, IO, Networking,
  • опыт работы с GIT,
  • опыт использования MVVM-архитектуры.

 

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

 

— Тут есть два сложных момента: 

  1. Когда ребятам надо перейти с java на kotlin, в kotline есть много синтаксического сахара, который лучше заранее разобрать. То есть студенты, которые приходят со знаниями kotlina, им проще разбираться — и есть больше времени изучать Android. 
  2. Последние темы по фоновой работе и реактивному программированию. На этом этапе уже накапливается много тем, и если остаются какие-то вопросы с прошлых лекций, то ребятам трудно. Поэтому так важно задавать вопросы. 


Если студент всё делает вовремя, сложностей не возникает, — рассказывает Виолетта Замана, преподаватель курса Android разработчик в TMS.

 

И требования для джуниор-разработчиков кроссплатформенных приложений

  • хорошие знания Dart, Flutter,
  • знание основ мобильной разработки.

 

— Это единственный курс по мобильной разработке, где требуется бэкграунд. Почему?

 

— Помимо Flutter, мы еще учим язык Dart. Маловероятно, что найдутся те, кто знает Dart, но не знает Flutter, потому что эти 2 вещи по отдельности не живут. Новичку за 3 месяца такой объем освоить нереально, — объясняет Александр, преподаватель курса Мобильный разработчик на Flutter.

 

Есть и общие требования ко всем трем направлениям:

  • английский язык (не является обязательным, но вы как минимум должны уметь читать техническую документацию);
  • наличие проектов в портфолио (где-то требуют сразу коммерческие, но хорошие учебные проекты тоже подойдут).

 

Подробнее о дипломном проекте будущих iOS-разработчиков рассказал Юрий, один из преподавателей курса:

Проекты, указанные на сайте, это примеры приложений, которые могут быть сделаны на курсе. 

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

В рамках одного потока приложения на данный момент одинаковые по общей сути, но как правило с разным дизайном, иногда с разными подходами, в среднем это от 3 до 5 полноценных приложений. 

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

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

Совсем недавно немного обновился подход к дипломным проектам, теперь они оцениваются по общим критериям в системе «уровня готовности». Понятно, что ни одно приложение нельзя считать готовым на 100%, всегда есть что добавить, куда расти и где можно улучшить и ускорить работу. 

Для примера можем взять браузер Chrome, которому далеко за 10 лет, над которым работает огромная команда разработчиков, — и он все еще постоянно обновляется, улучшается и получает новый функционал. Даже приложение калькулятора немного обновляется с каждой версией iOS. 

Поэтому мы собрали набор тем и критериев для дипломных проектов среди всех преподавателей и оцениваем относительный процент готовности по каждому из пунктов. На основе этих данных уже работает карьерный центр TMS. 

По итогу дипломного проекта в нашем понимании у студента должно получиться индивидуальное приложение, которое сделано не на основе какого-то курса или видео, а является плодом деятельности исключительно одного или группы студентов-выпускников. Такой проект, как правило, должен удовлетворять критериям Apple для публикации в AppStore — одним из которых в вольном переводе является что-то вроде «приложение должно нести пользу».

 

Soft skills 

Пожелания компаний здесь можно объединить для всех разработчиков в целом, вне зависимости от стека технологий: 

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

 

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

 

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

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

 

И некоторые цифры: как долго учиться и сколько буду зарабатывать 

В TeachMeSkills мы обучаем профессиям:

 

Что касается заработной платы, то средние значения по рынку следующие:

  • Junior iOS Developer — от 700$, Middle iOS Developer — от 1500$, Senior iOS Developer — от 2500$, iOS Team Lead — от 3300$,
  • Junior Android Developer — от 650$, Middle Android Developer — 1000$, Senior Android Developer — 2200$, Android Team Lead — 3000$,
  • Junior Flutter Developer — от 850$, Middle Flutter Developer — 1800$, Senior Flutter Developer — 3000$, Flutter Team Lead — 4000$.

 

Понятно, что многое зависит от ваших навыков, особенно в начале пути. Будьте открыты в первую очередь для получения нового опыта. А уже имея хорошее портфолио за плечами, продать себя как специалиста будет не так трудно. 

 

Какое направление выбрать?  

Есть некоторые технические моменты — и их стоит сразу учесть. Например, для обучения iOS-разработке вам потребуется компьютер на MacOS.

В остальном, опирайтесь на свои личные предпочтения. Посмотрите вакансии, которые наиболее популярны. Или обратитесь к менеджерам TeachMeSkills, которые помогут вам определиться.

“ Плюс, спустя время после получения коммерческого опыта, вы всегда можете освоить другую платформу (или кроссплатформу). Вам уже будет намного легче — и ценность в глазах работодателей будет выше. 

Иконка курса

Android разработчик

Программа курса программирования на Андроид составлена практикующими Android разработчиками для новичков в Android разработке на основе требований IT компаний.

Поможем в выборе!

Если у вас есть вопросы о формате или вы не знаете что выбрать, оставьте свой номер:
мы позвоним, чтобы ответить на все ваши вопросы.

  • Звонок
  • Консультация
  • Курсы
Phone

Свяжемся в течение рабочего дня

Нажимая на кнопку, я соглашаюсь на обработку персональных данных