Перспективы разработки под мобильные платформы

Работаю java джуном. Пишу под андроид. В общем из тех проектов, что у меня были — процентов так 80 — 90 задач были связанны с UI.

Возник вопрос — а решает ли кто-нибудь более серьезные задачи для Андроид (и мобильных платформ вообще — iOS, Windows phone, blackberry)? Ведь под мобильную платформу пишется просто какие-нибудь клиенты, никто ж не будет перегружать смартфоны чем-нибудь действительно серьезным.
И если такие задачи существуют, то в каких сегментах?
И, как по вашему мнению будет развиватся ситуация?

👍НравитсяПонравилось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

И если такие задачи существуют, то в каких сегментах?

Video/Audio processing от простых плэеров до видео эдиторов...

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

и зачем тогда нужен будет например 4-х ядерный Tegra3 если перегружать никто не будет?

МММ....
Чтобы портануть туда ГТА?

Ну и чтоб можно было померяться...

Nvidia’s Kal-El Quad-Core ARM Chip Is Actually Slower than Intel’s Core 2 Duo T7200
news.softpedia.com/...uo-T7200-5.png

NVIDIA запустила Lost Planet 2 на Android-планшете с процессором Tegra 3
androidmarket.ru/?p=6256

Q3 на компьютере за 25$
www.raspberrypi.org/archives/106

Augmented Reality — чем вам не серьезное (с точки зрения использования железа) ?

а решает ли кто-нибудь более серьезные задачи для Андроид (и мобильных платформ вообще — iOS, Windows phone, blackberry)?

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

Тип проектов, которые к вам заходят, зависит от многих факторов: как и с кем работают сейлзы, какой опыт и портфолио они при этом декларируют и т.д.

Не бачив великої різниці програмування під десктоп чи мобайл, принаймні для WinPhone, так треба враховувати що апарат на батареї, не стабільний інтернет ітд, але вже тепер посередні «смартфони» мають процесори по 1Ггц, я колись на Целероні 400МГц з Віндовс 98 такі ігрушки іграв як ГТА3, просто дивуюся з цієї надлишкової потужності. Тому страшилки типу хто не вміє програмувати під мобільники немає майбутнього не катить, оскільки це не є настільки складним як декілька років тому, коли мабуть приходилось довго обдумувати кожний рядок коду.

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

Взагалі все прямує в напрямок «захмарних сервісів» :), щоб все зберігалось на серваку, а ти тільки пристрої міняєш і працюєш з тими ж даними. HTML5 думаю трохи поріже обєм роботи, а жаль, а то ж скільки бабла можна з замовника брати за реалізацію версій для кожної окремої платформи :)

ТС, а как насчет игр?

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

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

Очень напоминает архитектуру (или конструктор).

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

По поводу игр.

Иногда думаю (в далеком будущем) попробовать себя в какой-нибудь игровой конторе. Ведь, если и есть что-то серьёзное под андроид в плане задач (и денег, ага) — то это игрушки. Да и вроде как не хватает, сейчас в Харькове, андроид разработчиков и Геймлофт под боком. Только не вижу я себя игроделом. В игрушки играть много интереснее, чем их делать. К тому же их созданием должны, в основном, художники и дизайнеры заниматься, а я в программисты пошел, то есть в математики, у меня чуство прекрасного только на код и архитектуру приложения заточено.

Ну, игры делать интересно, вот только нервное это дело. Сам иногда ностальгирую.

Ну значит у Вас просто не было интересных проектов, с кучей потоков, обширным взаимодействием с сервером, кешированием, обработкой каких-то данных, криптографией и т.п.

UI тоже может быть весьма нетривиальным. Тот же веб: вся логика вроде бы как и на сервере, но это не значит, что на клиенте все задачи пустяковые: в Google Docs присутствуют рендеринг документа, проверка правописания, сложная поддержка пользовательских действий (всякое там рисование диаграмм, драгндроп, выделения, ввод с клавиатуры с обработкой всяких там бекспейсов и делитов и т.п.). Я не думаю, что написание подобного UI — простая задача. И в то же время уверен, что на мобильных платформах происходит то же самое: клиент становится умнее.

Другое дело, что вы считаете «серьезной задачей». Если это свертываемость белков или идентификация раковых клеток, то нет — ничем подобным на телефонах не занимаются — смысла нет.

А развиваться ситуация будет так же, как и сейчас: больше приложений, дополнительная реальность, интеграция с бизнес-процессами. Кто-то пойдет по пути HTML5, а кто-то останется в нативном сегменте. Скорее всего мейнстримом станет iOS-приложение плюс html5-клиент на остальные платформы. Во-первых, все жалуются на то, что разработка на Андроиде — это костыль на костыле. Во-вторых, веб-решение можно использовать для нишевых платформ — wp7, bb, symbian, bada. В-третьих, под iOS все равно нативный клиент делать придется, т.к. политика Apple по отношению к браузерным движкам не позволит получить достаточную производительность для веб-приложений.

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

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

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

Собственно, вопрос был в том не попал ли я в такую ловушку, выбрав программирование под андроид.

По поводу разработки на андроид. Это просто ИМХО, но возможно, что костыль на костыле — это издержки главного преимущества андроида, а именно — широкого спектра поддерживаемых устройств. Хороший вопрос как было бы разработкой под iOS, если бы её модельный ряд соответствовал андроидовскому.

Насчет, кросплатформенных средств разработки. Это тоже ИМХО, но если с мощьностью в смартфонах все в порядке, то вот с энергопотреблением скорее всего будут проблемы. Поэтому, какая-нибудь кросплатформенность — это только если на рынке будет хотя бы 3-4 платформы с долей более 10%, а не 2 как сейчас. Тем более, что производители вряд ли будут топить собственные сдк, фокусируясь на кросплатформенности.

UI — это просто набор стандартных элементов, которые, как правило, генерятся автоматически — то есть, просто рисуются
Оок. Основываясь на каком опыте вы можете такое заявить?
Хороший вопрос как было бы разработкой под iOS, если бы её модельный ряд соответствовал андроидовскому.
А если бы iOS была написана на Java, и ее написал гугл...

«Оок. Основываясь на каком опыте вы можете такое заявить?»

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

«А если бы iOS была написана на Java, и ее написал гугл...»

Андроид не написан на джава.

Ну например мы делали такой UI: www.daisydiskapp.com

Андроид не написан на джава.

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

Ну, хорошо, я готов признать что написание UI — это очень сложная и нетривиальная задача.

Но я не хочу этим заниматься. Собственно, вопрос был, есть ли задачи под андроид, где большую часть времени НЕ будет занимат работа с UI.

А на чём написан Андроид по вашему? Часть джавы там есть и не малая.

Ядро андроида — это линукс, то есть Си.
Драйвера — тоже Си.
Dalvik — Си++.

Библиотеки, которые используются некоторыми компонентами андроида — тоже С/С++.

А вот приложения для андроида и стандартные библиотеки для разработки — это, да, java.

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

Ну, я просто ответил на чем андроид написан.

Впрочем, ковырятся надо и в сырцах фреймворка и в сырцах далвика (это ИМХО, можно не читать).

про далвик вы отожгли конечно.

Конечно. А почему?

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

Ну, собственно, вот хотя бы для этого следует.

Простите, но если ваше приложение не влазит в память, то это не приложение а шлак.

Там в комментах привели:

Cool Reader — 1.7млн загрузок, 800000 активных инсталляций.

Далвик убьет приложение, если оно схавает всю память процесса. На ВЕСЬ процесс отводится около 10 метров. Выводим пару хороших битмапов и все.

Это, конечно должно предусматриваться, надо исп слабые ссылки и т д.

Но, в общем, вполне вероятна ситуация, когда это может понадобится.

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

Ну да, не представляю даже как там товарищи в Glu не юзают таких хаков с их графикой ;)

Если glu — это библиотека, то там используют OpenGL, а она есть системная библиотека, на которую никакие ограничения далвика не действуют.

И скорее всего её разработчики внутренности далвика ковыряли.

А платят то сколько? Сопоставимо с enterprise-сегментом, или меньше?

Я не знаю сколько платят в ентерпрайз.

Работаю год (скоро будет как), одновременно учусь, так что нынешний рейт могу сравнить только со своей стипендией (кот уже не получаю) или с рейтами работающих сокурсников.

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

расскажи

Ну в общем под iOS пишет мобильный отдел, который больше всего java отдела. В теории он может разрабатывать и под Симбиан, и под Маемо, на практике такое случается очень редко.

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

Не знаю как вообще, но мои проекты — это была андроид версия iOS приложения. То есть заказывается нативный версии приложения под разные платформы (и под блекберри тоже).

Из тех, кто пишет под андроид только пара человек опытные, не сеньоры, но хорошие мидлы точно. При этом большая часть отдела пришла после меня (а я ещё даже год не отработал). Согластны были набирать даже после/во время учебы и полностью без опыта под андроид/блекберри.

На iOS вроде как только один джуниор и тот не производит впечатления новичка. Все андроид разботчики очень молоды — старшему то ли 24, то ли 23. В мобильном отделе — не знаю, но там явно большинству около/за тридцать.

Пишуших под блекберри — два человека. Один из них сидит рядом со мной — говорит разработка под блекберри что то вроде БДСМ. Когда-то писался один довольно большой проект (навигатор), так на андроид-версии сидел один человек, на блекберри — 2. При этом андроид проект закончили на порядок быстрее. Кстати, какой-то проект под блекберри (плейбук) писался на jQuery потому, что какие-то элементы нельзя было реализовать на родном сдк, при чем от каких-то заявленных фич пришлось отказаться (именно под блекберри, на андроид и iOS всё реализовали без изменений). На том же проекте далее заказали новые фичи, но только на андроид и iOS, на блекберри отказались. Реакция начальника на проекте (он из мобильного отдела) была — «Слава Богу!».

Кстати, человек пишуший под блекберри на данный момент разрабатывает сервер на javscript.

В общем заказы на андроид, iOs стабильны, на блекберри — реже. Довольно часто (но не всегда) одно и тоже приложение пишут под разные платформы.

Всё станет по настоящему серьёзно, когда годика через 2-3 те кто не освоил мобильную разработку столкнутся с проблемой трудоустройства.

Далее, Google: Ubuntu for Android. Вот так будет развиваться ситуация.

На объективность не претендую так как только смотрел издалека чем люди заняты, но на меня современная разработка под Android произвела несколько гнетущее впечатление. Больше всего процесс напомнил верстку с поддержкой IE6: костыль на костыле, и главная сложность чтоб ничего нигде не заглючило и не разъехалось, и заморочки вроде pixel perfect оттуда же.

Серьезно рекоммендую обратить внимание на HTML5 приложения. Это переспективное направление для мобильных устройств. С помошью HTML5 + Java Script можно создавать «кросс-мобильные» приложения, которые будут работать на большинстве устройств (и эплах и андроидах и винде).

Мобильное направление сейчас очень востребованно, но заказчиков огорчает что для разработки приложения надо нанимать 2-3 комманды: под андроид, под эплы и под винды. Поэтому в конечном итоге или победит кто-то один или будут развиваться кросс-мобильные средства разработки (и это не Java!).

Напоминает обещания большевиков -)

Разработка на HTML5 это адские тормоза. Для простого приложения типа скачай валлпапер пойдет разве что. В общем для каждой задачи свой инструмент.

Проблема в том, что на разных мобильных ОС разная логика UI (на iOS таббар внизу, на андроиде вверху, меню на андроиде и т.п.), и сделать один апп чтобы работал везде не выходит, все равно надо интерфейс делать разный.

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

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

Так же и с тормозами, клиент всегда прав, а там особо не пооптимизируешь.

Не стоит так же забывать, что дебажить в сафари не сахар (про андроид не скажу).

Вторая Sencha Touch меня приятно удивила скоростью работы, а вот с внешним видом да, 1 в 1 системную тему iOS имхо вообще не стоит пытаться делать.

И если такие задачи существуют, то в каких сегментах?

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

Естественно не для Украины.

И, как по вашему мнению будет развиватся ситуация?

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

А в указанных приложениях существуют какие-либо нетривиальные функции? Или все сложное выполняется на сервере?

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