Жизнь мобильного (Андроид) разработчика
Интересно услышать рассказы мобильных девелоперов об их работе. Почему именно Андроид? Хотелось бы сравнить проекты для смартфонов и планшетов с энтерпрайзом на джаве.
Вот думаю, может переключиться на мобайл, но сразу же возникает масса вопросов:
• Долго ли надо разбираться и практиковаться, чтобы выйти на уровень джуниора/мидла (если учесть, что core java уже освоена)
• Во многих вакансиях просят ссылки на проекты в гугл плей, но как-то стремно выкладывать свои подделки без нормального дизайна и комментариев пользователей, что-то мне кажется, что это больше антиреклама.
• На какую з/п может претендовать джун/мидл/синиор в Киеве в среднем и какая сейчас максимальная зп (кстати, в зарплатном опросе не хватает разделения на мобайл и серверную джаву)
• Насколько реально найти сразу работу по удаленке/смешанной системе (то есть например несколько дней в офисе, остальное дома)
• Насколько проблематично и прибыльно заниматься фрилансом на Андроиде?
• Насколько однотипны приложения? В энтерпрайзе, в принципе, есть где развернуться, интересно как с этим в мобайле
• Насколько трудно поддерживать множество девайсов (фрагментация и тд)
Ну и просто расскажите, как начинали, чем приходится заниматься день ото дня, какие перспективы видите, сильно ли прессуют менеджера типа «давай побыстрее, главное что б работало», есть ли доходы от ваших собственных приложений, часто ли приходится вам делать все самому (дизайн-кодинг-тестинг), много ли вернулись в «большую джаву» с Андроида.
В принципе, рассказы от IOS/WP разработчиков тоже приветствуются.
34 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівКоментар порушує правила спільноти і видалений модераторами.
1. Долго ли разбираться. Тут зависит от того, какого плана проекты будешь выполнять — можно за месяц неплохо разобраться в разработке приложений-визиток, а так чтобы начать улавливать какие-то тонкости и наступить уже на изрядное количество граблей, то это где-то полгода.
2. Проекты в маркете. Необязательно, но я думаю, что это неплохой способ показать свой уровень.
3. З/П. Такая же как и у остальных джава-девелоперов, хотя конечно зависит от фирмы и от уровня проектов.
4. Смешанный рабочий график. Об этом ничего толковго сказать не могу.
5. Фриланс. Проблематично в том плане, что очень много коротких проектов и сроки постоянно горят. Прибыльность наверное будет высокая, если набить руку на однотипных проектах и далее брать заказы такого типа по фиксед-прайсу.
6. Однотипность приложений. Очень зависит от места работы, маленькие проекты — пару недель и в основном все однотипные, проекты побольше занимают несколько месяцев и там уже есть где развернуться.
7. Фрагментация. Если дизайн вписывается в стандарты ОС, то с разными размерами экранов обычно больших проблем нет. Сложнее с разными версиями ОС, потому что многие новомодные бест-практис фичи в дизайне не поддерживаются в старых АПИ, приходится выкручиваться.
В общем и целом ОС развивается очень быстро, с4-кой работать намного приятнее, чем с 2-кой, появились стандарты дизайна приложений, всё апи хорошо задокументировано, куча всяких туториалов в интернете, а если возникает какой-то вопрос, то с вероятностью 99% на него уже отвечали на стаковерфлоу
Да, что-то пока картина складывается противоречивая.
С одной стороны
+ сильно искушает возможность работать вне офиса (сам очень не люблю работать в шумных помещениях, где кто-то постоянно говорит по скайпу/телефону/рассказывает, как он класно побухал вчера, концентрация на 0).
+ возможность стороннего подработка, деньги от собственных аппов (хотя с этим тоже не все так гладко, как хотелось бы)
+ андроид активно развивается, доля рынка ошеломляющая, много работы
С другой стороны
— фрагментация платформы, необходимось часто работать с ранними версиями АПИ типа 2.3, так как половина телефонов именно на ней. Хотя гугл делает какие-то движения для улучшения ситуации
— много проектов — порты с айос, непонимание системы заказчиками и тп
— однотипность проектов
Конечно, есть еще IOS, но сильно смущает, что Objective-C больше негде применить, XCode все-еще далеко до эклипсов со визуал студиями, да и сама система развивается меньшими темпами, чем андроид. Ну, с финансовой точки зрения наверное таки выгодней, по крайней мере, года 2 назад в предыдущей моей конторе айос девы получали больше андроидчиков, плюс пользователи айоса не стыдяться выбрасывать деньги на аппликухи/игры.
Так поделитесь опытом, интересно же :)
А кроме AR есть нетривиальные проекты в андроид девелопменте? И как часто заходит проект с нетривиальными задачами, а не проект в стиле написать клиент для очередного интернет магазина ?
это в Циклуме такие проекты?
или это помимо работы? Я б тоже пожалуй не отказался от таких))
Под iOS мне попадаются в основном «социалочки», может не там ищу(
Хотя судя по открытости самой android платформы и наличия NDK, тут есть где разгуляться нетривиальным проектам
Ну наличие NDK плюс, только его не часто применяют так как в большинстве проектов в его применении нету смысла
под мак ос на Objective-C пишут
В студии про 2010 нет нормального автокомплита и подсветки кода для С++. Попробуйте на досуге, поймете, что хкод не так уж плох.
AppCode от JetBrains — вышло довольно неплохо
Андроид ночной кошмар разработчика:
1. Куча ограничений производительности
2. Куча ограничений в плане использования памяти и больших изображений
3. Куча отвратительного апи — на пример метод isEmpty() у String появился лишь в 9 версии апи или SlidingDrower у которого расстояние на которое он выезжает указывается отступом СВЕРХУ, итераторы для некторорых часто используемых коллекций тоже появились только в 9 версии апи.
4. Фрагментация устройств и разрешений причиняет мегатонны попаболи.
5. Постоянные загоны заказчика — хочу как в ифоне, кнопку назад на экране и прочие приблуды
6. Куча деприкэйтед методов и классов, которыми обрастает андроид с каждой новой версией
7. Необходимость уметь работать с кучей сторонних библиотек, чтоб хоть как-то обеспечить обратную совместимость.
и документация — просто позор.
ну она заметно хуже, если сравнивать с web java разработкой
Но есть же какие-то стандартные способы, как сделать, чтобы аппликуха более-менее одинаково работала на разных девайсах с разным разрешением экранов и тп. ? Или надо постоянно извращаться и делать какие-то костыли? Как я себе представлял это: сначала рисуется общий дизайн, девелопер пишет код и делает так, чтобы для каждого разрешения подтягивались нужные файлы ресурсов, QA тестируют на разных телефонах/планшетах(если фирма серьезно занимается мобильной сферой, то должнен быть зоопарк девайсов?), если что-то не так, дев уже делает какие-то конкретные движения для конкретного девайса.
По разному бывает, зоопарак девайсов нужен, встречался с ситуацией когда на 2х абсолютно одинаковых девайсах на 1 работает на другом нет =)
Стандартные способы есть но опять когда на арену вступают планшеты появляются проблемы, в общем и целом как по мне андроид редкая дрянь
Да, есть стандартный подход.90-х тоже были проблемы совместимости ATI и NVidia железок, а игрушки затачивались под что то одно обычно.
1. Создается дизайн приложение (картинки, оформление и тд)
2. Создается каркас приложения — желательно резиновый.
3. Собирается сборка только для телефонов и отдельно сборка для HD экранов. Это делается для того чтобы уменьшить общий вес apk. Иногда делают больше форков под разные типы устройств.
4. В случае с играми часто делают форки под разные железки. Например на Tegra устройствах свой конвеер обработки граф. примитивов и доступны уникальные для tegra шейдеры. Сейчас еще и Intel выпускают свой граф. процессор для андроид устройств.
В этом и состоит основные трудности разработки под андроид. Для больших проектов, чтобы сделать качественное приложение приходится держать в || много форков.
Это мне напоминает детские болезни становления платформы как PC в
Ничего, это временно- скоро устаканится.
Андроид отличная платформа для разработки, уж поверьте.
К тому же Nasa рассматривает эту платформу как основу для своих мобильных устройств, как полностью открытую. Что в свою очередь приведет к росту рынка гос заказов на платформе андроид.
К счастью, теперь эта версия уже давно позади, и с ней и тем более предшествовавшими версиями связываться больше не обязательно. Можно работать уже с нормальными, современными.
Особенно если заказчик декларирует поддержку 1.6+
Такого заказчика я бы с удовольствием подарил конкурентам.
Далеко не всегда :)
Часто хотят именно 2.2
2.2 — це море китайських планщетів
Не сказал бы. Китайцы уже давно шлепают на свои поделки четвертый андроид, а доля 2.2 сейчас около 8%.
А разрабатывать под андроид начала удаленно, с минимальными знаниями java, на уровень джуниора вышла через пару месяцев.
1, 2 — Андроид пока еще мобильная ОС.
3 — пример, пож?
5 — на других платформах заказчика видимо нема.
6 — и чо?
7 — ага, ага нужно уметь применять сторонние библиотеки, ваще беспредел.
Это формальность
Однотипны, краткосрочны
Сам хочу вернутся в энтерпрайз с андроида, так как проекты в среднем две-три недели, стиль разработки давай побыстрее, главное что б работало. Было пару раз что я был и разработчиком и тестировщиком. Но главный фактор перехода людей с мобайла в энтерпрайз это однотипные приложения и большая фрагментация андроида
Как я понимаю, по деньгам тоже нету какой-то ощутимой выгоды.
Но вот большой, как по мне, плюс — это возможность найти работу по удаленке/подработку на стороне, в энтерпрайзе такое почти невозможно.
-
я — кэп, но везде свои «плюсы» и «минусы»
Меня сложно назвать Андроид разработчиком, пару лет назад писал игрушку под андроид. Что могу сказать:
1. На джаве писать очень легко ( у меня C#/С основные)
2. Отлаживаться лучше на девайсе — эмулятор ужасно медленно работает.
3. Проблема фрагментации замечена не была. Если пользоваться резиновой версткой для UI и писать качественный код- то все будет -Ок, почти везде. Я проверял свое приложение на 4 разных девайсах- везде все работало отлично, и на разных версиях андроида.
4. Разрабатывать под Андроид можно и нужно- еще не так много приложений сделано как под яблофон.
5. Делал для себя- pet project, поэтому пресовал меня только лишь я, сам.
6. Дизайн, кодинг, делал сам- тестировать помогали жена, друзья.
7. Фриланс под андроид на "дядю"- не знаю, из того что я видел мало прибыльно. Но это то что видел я на одесках.
8. Продавать по честному приложения с Украины низззя. Так что прийдется делать либо бесплатное с рекламой/внутренними покупками, либо искать обходные пути.
9. Пользователи у андроида- откровенно говоря- хрюнделя- очень часто сливают рейтинг приложению т.к. не разобрались в нем.
10. Ну и сама платформа мне очень нравится.
Вот ссылка на раннюю версию моей игрушки
Спасибо за ответ. Сколько времени заняло сделать такую демку? И вы писали ее только на джаве, или еще приходилось испольховать C/С++ и NDK?
Java +OpenGL ES
Поддерживаю вопрос, самому будет интересно почитать !
PS: Чуть не создал похожую тему с похожими вопросами ...