Жизнь мобильного (Андроид) разработчика

💡 Усі статті, обговорення, новини про Mobile — в одному місці. Приєднуйтесь до Mobile спільноти!

Интересно услышать рассказы мобильных девелоперов об их работе. Почему именно Андроид? Хотелось бы сравнить проекты для смартфонов и планшетов с энтерпрайзом на джаве.

Вот думаю, может переключиться на мобайл, но сразу же возникает масса вопросов:
• Долго ли надо разбираться и практиковаться, чтобы выйти на уровень джуниора/мидла (если учесть, что core java уже освоена)
• Во многих вакансиях просят ссылки на проекты в гугл плей, но как-то стремно выкладывать свои подделки без нормального дизайна и комментариев пользователей, что-то мне кажется, что это больше антиреклама.
• На какую з/п может претендовать джун/мидл/синиор в Киеве в среднем и какая сейчас максимальная зп (кстати, в зарплатном опросе не хватает разделения на мобайл и серверную джаву)
• Насколько реально найти сразу работу по удаленке/смешанной системе (то есть например несколько дней в офисе, остальное дома)
• Насколько проблематично и прибыльно заниматься фрилансом на Андроиде?
• Насколько однотипны приложения? В энтерпрайзе, в принципе, есть где развернуться, интересно как с этим в мобайле
• Насколько трудно поддерживать множество девайсов (фрагментация и тд)

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

В принципе, рассказы от IOS/WP разработчиков тоже приветствуются.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Коментар порушує правила спільноти і видалений модераторами.

1. Долго ли разбираться. Тут зависит от того, какого плана проекты будешь выполнять — можно за месяц неплохо разобраться в разработке приложений-визиток, а так чтобы начать улавливать какие-то тонкости и наступить уже на изрядное количество граблей, то это где-то полгода.
2. Проекты в маркете. Необязательно, но я думаю, что это неплохой способ показать свой уровень.
3. З/П. Такая же как и у остальных джава-девелоперов, хотя конечно зависит от фирмы и от уровня проектов.
4. Смешанный рабочий график. Об этом ничего толковго сказать не могу.
5. Фриланс. Проблематично в том плане, что очень много коротких проектов и сроки постоянно горят. Прибыльность наверное будет высокая, если набить руку на однотипных проектах и далее брать заказы такого типа по фиксед-прайсу.
6. Однотипность приложений. Очень зависит от места работы, маленькие проекты — пару недель и в основном все однотипные, проекты побольше занимают несколько месяцев и там уже есть где развернуться.
7. Фрагментация. Если дизайн вписывается в стандарты ОС, то с разными размерами экранов обычно больших проблем нет. Сложнее с разными версиями ОС, потому что многие новомодные бест-практис фичи в дизайне не поддерживаются в старых АПИ, приходится выкручиваться.

В общем и целом ОС развивается очень быстро, с 4-кой работать намного приятнее, чем с 2-кой, появились стандарты дизайна приложений, всё апи хорошо задокументировано, куча всяких туториалов в интернете, а если возникает какой-то вопрос, то с вероятностью 99% на него уже отвечали на стаковерфлоу

Да, что-то пока картина складывается противоречивая.

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

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

Конечно, есть еще IOS, но сильно смущает, что Objective-C больше негде применить, XCode все-еще далеко до эклипсов со визуал студиями, да и сама система развивается меньшими темпами, чем андроид. Ну, с финансовой точки зрения наверное таки выгодней, по крайней мере, года 2 назад в предыдущей моей конторе айос девы получали больше андроидчиков, плюс пользователи айоса не стыдяться выбрасывать деньги на аппликухи/игры.

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

Так поделитесь опытом, интересно же :)

А кроме AR есть нетривиальные проекты в андроид девелопменте? И как часто заходит проект с нетривиальными задачами, а не проект в стиле написать клиент для очередного интернет магазина ?

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

это в Циклуме такие проекты?
или это помимо работы? Я б тоже пожалуй не отказался от таких))
Под iOS мне попадаются в основном «социалочки», может не там ищу(

Хотя судя по открытости самой android платформы и наличия NDK, тут есть где разгуляться нетривиальным проектам

Ну наличие NDK плюс, только его не часто применяют так как в большинстве проектов в его применении нету смысла

под мак ос на Objective-C пишут

XCode все-еще далеко до эклипсов со визуал студиями, да и сама система развивается меньшими темпами, чем андроид

В студии про 2010 нет нормального автокомплита и подсветки кода для С++. Попробуйте на досуге, поймете, что хкод не так уж плох.

XCode все-еще далеко до эклипсов со визуал студиями
если не нравится, то есть альтернатива, хотя и не 100%:
AppCode от JetBrains — вышло довольно неплохо

Андроид ночной кошмар разработчика:
1. Куча ограничений производительности
2. Куча ограничений в плане использования памяти и больших изображений
3. Куча отвратительного апи — на пример метод isEmpty() у String появился лишь в 9 версии апи или SlidingDrower у которого расстояние на которое он выезжает указывается отступом СВЕРХУ, итераторы для некторорых часто используемых коллекций тоже появились только в 9 версии апи.
4. Фрагментация устройств и разрешений причиняет мегатонны попаболи.
5. Постоянные загоны заказчика — хочу как в ифоне, кнопку назад на экране и прочие приблуды
6. Куча деприкэйтед методов и классов, которыми обрастает андроид с каждой новой версией
7. Необходимость уметь работать с кучей сторонних библиотек, чтоб хоть как-то обеспечить обратную совместимость.

5. Постоянные загоны заказчика — хочу как в ифоне
с поддержкой 2-й версии Андроида, и это — ресурсы(катринки) сами там это найдите в интернетах. и быстро.
6. Куча деприкэйтед методов и классов, которыми обрастает андроид с каждой новой версией
и документация — просто позор.
и документация — просто позор.
Тю, а везде пишут, что не надо никаких книжек, читай доки на офф. сайте :)

ну она заметно хуже, если сравнивать с web java разработкой


1. Куча ограничений производительности
2. Куча ограничений в плане использования памяти и больших изображений
А можете привести более конкретные примеры? Ограничения на уровне железа/самой системы/джавы?
Фрагментация устройств и разрешений причиняет мегатонны попаболи.
Но есть же какие-то стандартные способы, как сделать, чтобы аппликуха более-менее одинаково работала на разных девайсах с разным разрешением экранов и тп. ? Или надо постоянно извращаться и делать какие-то костыли? Как я себе представлял это: сначала рисуется общий дизайн, девелопер пишет код и делает так, чтобы для каждого разрешения подтягивались нужные файлы ресурсов, QA тестируют на разных телефонах/планшетах(если фирма серьезно занимается мобильной сферой, то должнен быть зоопарк девайсов?), если что-то не так, дев уже делает какие-то конкретные движения для конкретного девайса.

По разному бывает, зоопарак девайсов нужен, встречался с ситуацией когда на 2х абсолютно одинаковых девайсах на 1 работает на другом нет =)
Стандартные способы есть но опять когда на арену вступают планшеты появляются проблемы, в общем и целом как по мне андроид редкая дрянь

Да, есть стандартный подход.
1. Создается дизайн приложение (картинки, оформление и тд)
2. Создается каркас приложения — желательно резиновый.
3. Собирается сборка только для телефонов и отдельно сборка для HD экранов. Это делается для того чтобы уменьшить общий вес apk. Иногда делают больше форков под разные типы устройств.
4. В случае с играми часто делают форки под разные железки. Например на Tegra устройствах свой конвеер обработки граф. примитивов и доступны уникальные для tegra шейдеры. Сейчас еще и Intel выпускают свой граф. процессор для андроид устройств.
В этом и состоит основные трудности разработки под андроид. Для больших проектов, чтобы сделать качественное приложение приходится держать в || много форков.
Это мне напоминает детские болезни становления платформы как PC в 90-х тоже были проблемы совместимости ATI и NVidia железок, а игрушки затачивались под что то одно обычно.
Ничего, это временно- скоро устаканится.
Андроид отличная платформа для разработки, уж поверьте.
К тому же Nasa рассматривает эту платформу как основу для своих мобильных устройств, как полностью открытую. Что в свою очередь приведет к росту рынка гос заказов на платформе андроид.

3. Куча отвратительного апи — на пример метод isEmpty() у String появился лишь в 9 версии апи или SlidingDrower у которого расстояние на которое он выезжает указывается отступом СВЕРХУ, итераторы для некторорых часто используемых коллекций тоже появились только в 9 версии апи.

К счастью, теперь эта версия уже давно позади, и с ней и тем более предшествовавшими версиями связываться больше не обязательно. Можно работать уже с нормальными, современными.

Особенно если заказчик декларирует поддержку 1.6+

Такого заказчика я бы с удовольствием подарил конкурентам.

Далеко не всегда :)
Часто хотят именно 2.2

2.2 — це море китайських планщетів

Не сказал бы. Китайцы уже давно шлепают на свои поделки четвертый андроид, а доля 2.2 сейчас около 8%.

1. Куча ограничений производительности
2. Куча ограничений в плане использования памяти и больших изображений
5. Постоянные загоны заказчика — хочу как в ифоне, кнопку назад на экране и прочие приблуды
В свое время это, а так же отсутствие норм документации и жутко тормозящий эмулятор заставили меня уйти из разработки под андрод в разработку под iOS. Тогда я поняла, что значит получать удовольствие от работы. В iOS тоже не все идеально, и много своих заморочек, но с андроид не сравнить.
А разрабатывать под андроид начала удаленно, с минимальными знаниями java, на уровень джуниора вышла через пару месяцев.

1, 2 — Андроид пока еще мобильная ОС.
3 — пример, пож?
5 — на других платформах заказчика видимо нема.
6 — и чо?
7 — ага, ага нужно уметь применять сторонние библиотеки, ваще беспредел.

Долго ли надо разбираться и практиковаться, чтобы выйти на уровень джуниора/мидла (если учесть, что core java уже освоена)
На миддла год, на джуна сделать парсер xml/json c отображением в listview и вперед на проекты
Во многих вакансиях просят ссылки на проекты в гугл плей, но как-то стремно выкладывать свои подделки без нормального дизайна и комментариев пользователей, что-то мне кажется, что это больше антиреклама.
Это формальность
Насколько однотипны приложения? В энтерпрайзе, в принципе, есть где развернуться, интересно как с этим в мобайле
Однотипны, краткосрочны
Ну и просто расскажите, как начинали, чем приходится заниматься день ото дня, какие перспективы видите, сильно ли прессуют менеджера типа «давай побыстрее, главное что б работало», есть ли доходы от ваших собственных приложений, часто ли приходится вам делать все самому (дизайн-кодинг-тестинг), много ли вернулись в «большую джаву» с Андроида.
Сам хочу вернутся в энтерпрайз с андроида, так как проекты в среднем две-три недели, стиль разработки давай побыстрее, главное что б работало. Было пару раз что я был и разработчиком и тестировщиком. Но главный фактор перехода людей с мобайла в энтерпрайз это однотипные приложения и большая фрагментация андроида
Сам хочу вернутся в энтерпрайз с андроида, так как проекты в среднем две-три недели, стиль разработки давай побыстрее, главное что б работало. Было пару раз что я был и разработчиком и тестировщиком. Но главный фактор перехода людей с мобайла в энтерпрайз это однотипные приложения и большая фрагментация андроида
Да, это меня и сдерживает, не хочется потратить несколько лет и потом возвращаться.
Как я понимаю, по деньгам тоже нету какой-то ощутимой выгоды.
Но вот большой, как по мне, плюс — это возможность найти работу по удаленке/подработку на стороне, в энтерпрайзе такое почти невозможно.

я — кэп, но везде свои «плюсы» и «минусы»

Меня сложно назвать Андроид разработчиком, пару лет назад писал игрушку под андроид. Что могу сказать:
1. На джаве писать очень легко ( у меня C#/С основные)
2. Отлаживаться лучше на девайсе — эмулятор ужасно медленно работает.
3. Проблема фрагментации замечена не была. Если пользоваться резиновой версткой для UI и писать качественный код- то все будет -Ок, почти везде. Я проверял свое приложение на 4 разных девайсах- везде все работало отлично, и на разных версиях андроида.
4. Разрабатывать под Андроид можно и нужно- еще не так много приложений сделано как под яблофон.
5. Делал для себя- pet project, поэтому пресовал меня только лишь я, сам.
6. Дизайн, кодинг, делал сам- тестировать помогали жена, друзья.
7. Фриланс под андроид на "дядю"- не знаю, из того что я видел мало прибыльно. Но это то что видел я на одесках.
8. Продавать по честному приложения с Украины низззя. Так что прийдется делать либо бесплатное с рекламой/внутренними покупками, либо искать обходные пути.
9. Пользователи у андроида- откровенно говоря- хрюнделя- очень часто сливают рейтинг приложению т.к. не разобрались в нем.
10. Ну и сама платформа мне очень нравится.
Вот ссылка на раннюю версию моей игрушки

Спасибо за ответ. Сколько времени заняло сделать такую демку? И вы писали ее только на джаве, или еще приходилось испольховать C/С++ и NDK?

Поддерживаю вопрос, самому будет интересно почитать !

PS: Чуть не создал похожую тему с похожими вопросами ...

Підписатись на коментарі