LINUX.ORG.RU
ФорумMobile

android vs iOS с точки зрения девелопера


0

4

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

Поэтому, спрашиваю у уважаемых лоровских специалистов, так ли это? Интересно мнение людей, которые пробовали девелопить под обе платформы.

★★★★★

Разрабатываю под андроид, но имел дело и с iOs. И так - разница: 1) девайсы под ios имеют только 2 разрешения экрана, в отличие от андройдовских, где устройств и разрешений целый зоопарк. Поэтому делать дизайн приложения там проще. 2) эмулятор ios стабильней и быстрей. Как не печально это признавать. 3) андройд ведёт себя иногда действительно странно. (Хотя уверен и в ios есть глюки). 4) ios девелоперы испытывают фрустрацию, от того, что нельзя вложить scrollview в scrollview, как в ios, хотя по мне это логично.

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

koirn
()
Ответ на: комментарий от koirn

И да, есть ios девелоперы которые плюются от этой платформы. Мне она на первый взгляд тоже не особо понравилась. Все дело в том, с чего начинать. Основываясь на моём опыте, все андроед разработчики плюются от ios, и соответственно наоборот

koirn
()

Для того, чтобы писать под Android, надо знать java, которую в этой стране никто не знает, с objective-c в этом плане проще из-за существования франкенштейна по имени objective-c++.

PolarFox ★★★★★
()
Ответ на: комментарий от Deleted

не густо там полезной инфы.порог вхождения это далеко не решающий фактор

provaton ★★★★★
() автор топика

По платформам не скажу, ибо под яву я пишу полноценную, а ондроеда только эмулятор запсукал, и то недождался пока он запустится, а вот с iOS имел долгую сексуальную связь. Так что по языкам и API Кратко: ios - говно. Развернуто: Obj-c хороший язык, с кучей интересных концепций, и сам по себе он мне приглянулся больше С++ и явы.... но у obj-c идет его убищный синтаксис (особенно +- перед названием методов, именования аргументов методов и т.п., послыка сообщений объектам). кроме того мы имеем кастрированные возможности api - хранилище только через sqlite, как только делаем многопоточное приложение приходится трахаться с ручным разруливанием конкурентного доступа, есть парочка надстроек на sqlite одно глючное и убогое, другое к эти достоинствам еще и монструозное orm. Сторонних библиотек мало, встроенные кривые, rpc пришлось делать только через xml, а парсинг его там это отдельная песня, особенно если он размером больше 10мб.

_________

//wfrr

anonymous
()
Ответ на: комментарий от PolarFox

никто не знает - это не аргумент, хотелось бы чисто техническое сравнение

provaton ★★★★★
() автор топика

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

VladimirMalyk ★★★★★
()
Ответ на: комментарий от VladimirMalyk

>в иос инфраструктура устроена так, что тяжело шмальнуть себе в ногу.

Это вы так ручное управление памятью и отсутсвие нормальной информации об ошибках называете?

_________

//wfrr

_________

//wfrr

anonymous
()
Ответ на: комментарий от VladimirMalyk

В самой ios да, но если использовать objc при разработке, то легко можно поотстреливать не только ноги. Правда, в xcode достаточно умный анализатор кода, подсказывает некоторые возможные ошибки.

note173 ★★★★★
()
Ответ на: комментарий от anonymous

считается что это издержки языка а не платформы, тут иос девелоперы самозабвенно жрут кактус

VladimirMalyk ★★★★★
()
Ответ на: комментарий от koirn

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

Это следует читать так: «Так как там всего два разрешения экрана, то набыдлокодить захардкоженные дизайны без использования раскладок элементов управления легко, посему софт получается кривым»

Вообще ты забыл упомянуть об очень важном моменте: для разработки под iPhone OS X необходимо иметь компьютер от Apple, а также за право разработки и размещения приложения в AppStore платить деньги. По этой причине разрабатывать имеет смысл только те проекты, которые окупятся. Под ведроид ситуация совершенно иная.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

>Это следует читать так: «Так как там всего два разрешения экрана, то набыдлокодить захардкоженные дизайны без использования раскладок элементов управления легко, посему софт получается кривым»

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

Для того, чтобы писать под Android, надо знать java, которую в этой стране никто не знает, с objective-c в этом плане проще из-за существования франкенштейна по имени objective-c++.


Имхо наоборот, ибо objective-c это всё таки надстройка над Си, со всеми вытекающими. Например управление памятью там ручное, и поэтому быдлокодерские подделки текут как дырявые ведра. А софт для нахождения леаков у них довольно кривой. Например мне оно тупо указавало на leak в том месте где память я освободил, но пропустила, то место где я это сделать забыл. Т.е её можно юзать что бы увидеть, что утечки есть, а потом уже в ручную шерстить код.

koirn
()
Ответ на: комментарий от koirn

>Потом же узнал что они не нужны, и все расположения элементов интерфейса они задают тупо в пикселях.

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

koirn
()
Ответ на: комментарий от provaton

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

PolarFox ★★★★★
()
Ответ на: комментарий от koirn

Сейчас у них уже три разрешения (ифон, ифон хд, айпад). А что если скоро будет 4 или 5? Ведроидодевелопер тоже может сделать приложение под 3 разрешения, самые популярные, а остальных в маркете посылать лесом, но тогда он лишается части потенциальной аудитории.

PolarFox ★★★★★
()
Ответ на: комментарий от anonymous

>хранилище только через sqlite, как только делаем многопоточное приложение приходится трахаться

а что это еще за многопоточное приложение на мобилке? Игрушка с крутой физикой или биткоины майнили?

nu11 ★★★★★
()
Ответ на: комментарий от provaton

на си можно писать библиотеки, в GUI все равно от жавы не уйдешь

marvin_yorke ★★★
()
Ответ на: комментарий от PolarFox

>А что если скоро будет 4 или 5

Запилят лайоуты как в андройде и назовут это новой супер фичей

koirn
()
Ответ на: комментарий от nu11

ничего сложного: аппликуха показывающая список хрени с вебсайта с фоновой подгрузкой картинок и синхронизацией. Вроде фигня а секас еще тот, особенно печально после явовские ExecutionService Future и ConcurrentMap на которых все это сделать проще чем крикнуть «Вфрр!».

_________

//wfrr

anonymous
()
Ответ на: комментарий от PolarFox

Даже не пойму, это так тонко, что непонятно, что тонко, или это другая планета? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от nu11

>а что это еще за многопоточное приложение на мобилке?

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

KRoN73 ★★★★★
()

Работаю в обеими платформами в соотношении 50/50 плюс iOS-фриланс. В Eclipse очень не радуют совершенно внезапные глюки в сборке проекта. Вот, напрмер, в пятницу я умудрился запороть сборку любого проекта, добавив одну несчастную строчку в manifest-файл одного из проектов. После этого ни один проект не собирался с формулировкой вроде «wrong apk file». Права на чтение/запись директории workspace, конечно, проверял. Любой новосозданные проект отказывался собираться с такой же ошибкой. Пришлось копировать Eclipse в другую директорию, для него задавать новый workspace, создавать новый проект, в него перетаскивать весь код. Простой импорт существующего проекта приводил ко всё той же ошибке. Благо с такой АНДРОИДОПРОБЛЕМОЙ я столкнулся лишь раз за почти год работы с Android. Гораздо чаще сталкиваюсь с временной «потерей» всего, что относится к res/, после очистки проекта.

Из глюков Xcode припоминаю только «предложение сделать crash» при слишком большом числе скобок на одно выражение. Хcode видел где-то с версии 3.0.

ufw
()
Ответ на: комментарий от anonymous

>аппликуха показывающая список хрени с вебсайта с фоновой подгрузкой картинок и синхронизацией.

и что тут такого? У тебя два фоновых потока эти картинки в сторадж грузили?

nu11 ★★★★★
()
Ответ на: комментарий от ufw

А что касается собственно платформ, то лично я со временем вижу всё меньшую разницу между ними в плане каких-то сложностей в написани и/или поддержке проектов.

ufw
()
Ответ на: комментарий от nu11

ничего такого, в том то и косяк, что для нормальных платформ это фигня.

_________

//wfrr

anonymous
()
Ответ на: комментарий от zgen

та мянаж jb или кто там у них забанит по причине «wfrr», я ихнию братию так вымораживаю что меня даже по ip банят регулярно (вчера например банили).

_________

//wfrr

anonymous
()
Ответ на: комментарий от koirn

> 1) девайсы под ios имеют только 2 разрешения экрана,

320x240, 960x640, 1024x768, скоро будет еще одно разрешение. Радует пока только одно - всего два типа графических чипов. Да и то старые чипы с поддержкой opengl es1 ставились только до iphone 3g, в iphone 3gs уже идут с поддержкой es2.

в отличие от андройдовских, где устройств и разрешений целый зоопарк.


Да, тут их побольше, но ориентироваться стоит на 320x240, 800x480, 1024x768.

2) эмулятор ios стабильней и быстрей. Как не печально это признавать


В xcode 4.2 симулятор стал тормознее раза в два, по сравнению с xcode 3.2.6.

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

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

andreyu ★★★★★
()
Ответ на: комментарий от Quasar

> Вообще ты забыл упомянуть об очень важном моменте: для разработки под iPhone OS X необходимо иметь компьютер от Apple, а также за право разработки и размещения приложения в AppStore платить деньги. По этой причине разрабатывать имеет смысл только те проекты, которые окупятся. Под ведроид ситуация совершенно иная.

Конечно, 100 баксов в год это тоже деньги, но этот момент совершенно не важен. Даже если разрабатывается фриварное приложение.

andreyu ★★★★★
()
Ответ на: комментарий от anonymous

> та мянаж jb или кто там у них забанит по причине «wfrr», я ихнию братию так вымораживаю что меня даже по ip банят регулярно (вчера например банили).

Нахрена?

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

> Даже если разрабатывается фриварное приложение.

А если я чисто для себя хочу пет-проджект написать? И тупо за это платить 2к за комп и 100 баксов в год за аппсторе?

provaton ★★★★★
() автор топика
Ответ на: комментарий от provaton

> > Даже если разрабатывается фриварное приложение.

А если я чисто для себя хочу пет-проджект написать? И тупо за это платить 2к за комп и 100 баксов в год за аппсторе?


Если для себя, то зачем вам анально огороженый iphone?

andreyu ★★★★★
()

Мне интересно как они там в соей гейос с утечками памяти справляются.

С ios не знаком, но под Android быдлокодить мне в принципе понравилось. Правда забавный глюк был. Проект собирался и исправно работал на эмуляторе, а на девайсе падал. Оказалось оно вылетало с «Unknown method String.isEmpty()». :)

urxvt ★★★★★
()
Ответ на: комментарий от koirn

Ну так эмулятор айфона — не настоящий, а как старый из симбиан. Под него генерируется x86 бинарники, естественно они быстрее выполняются.

note173 ★★★★★
()
Ответ на: комментарий от andreyu

> зачем вам анально огороженый iphone?

Тяжело не согласиться.

provaton ★★★★★
() автор топика
Ответ на: комментарий от urxvt

> Мне интересно как они там в соей гейос с утечками памяти справляются.

На каждый аллокейшн памяти должен быть свой release или autorelease. Достаточно просто, особенно если использовать статический анализатор в Xcode. В последнем SDK появился Automatic Reference Counting: компилятор сам добавляет release в нужных местах, основываясь на директивах, связанных с тем или иным указателем.

ufw
()

про ифон знаю в основном по наслышке, но кодил гуй под мак (как carbon, так и cocoa), а как известно - на iOS разновидность cocoa. под андроид знаю не по наслышке, и ненавижу девелопить под него. считаю, что под iOS приятнее — objc вместо жабы, нативный код сколько угодно, никакой фрагментации. единственный плюс разработки под андроид, на мой взгляд, это возможность использовать linux.

waker ★★★★★
()
Ответ на: комментарий от anonymous

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

на андроиде с многопоточностью тоже не все сказочно.

хранилище только через sqlite

в iOS нельзя писать/читать обычные файлы? не знал этого

waker ★★★★★
()
Ответ на: комментарий от anonymous

> хранилище только через sqlite

Что ты имеешь ввиду? Помимо SQLite d «песочнице» приложения можно создавать файлы, можно использовать NSUserDefaults для совсем простых вещей, для совсем непростых - Core Data. Или я чего-то не понимаю.

ufw
()

пишу под андроид:
- дико бесит эмулятор
- дико бесит обилие разрешений
- бесит обилие девайсов( у кого норм с OpenGL у кого ппц как плохо)
+ приятно писать жабе
+ приятно писать в Intellij IDEA

иногда закрадывается мнение, что на ios с производительностью получше

sacred ★★
()
Ответ на: комментарий от ufw

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

NSUserDefaults

этож настройки, куда туды изображение пхать?

для совсем непростых - Core Data. Или я чего-то не понимаю.

а это уже то что я назвал надсрайкой (orm) над sqllite тот еще секас. хотя на самом деже оно позволяет сохраняться в xml или еще куда, но делать на этом кеш.

_________

//wfrr

anonymous
()
Ответ на: комментарий от andreyu

Это не у меня надо спрашивать.

_________

//wfrr

anonymous
()
Ответ на: комментарий от anonymous

> NSUserDefaults

OK, я всё понял в контексте хранения данных вообще.

ufw
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.