LINUX.ORG.RU

Как правильно начать писать под iOS?

 


0

2

Не уверен в правильности задавания этого вопроса на ЛОРе, но всё же.
Как начать писать под iOS, если опыт (и то минимальный) только на PHP? Программировать не умею (только быдлокодить). Как правильно начать, с чего именно начать, чем продолжить (OBJ-C/Swift)?
Цель - писать свои приложения (есть пару идей) + работать на удалёнке.

Всем спасибо за ответы.

Весь инструментарий для разработки под iOS и Mac OS X есть.

Ответ на: комментарий от ioway

(и имеют С-интерфейс

Например?

Например CFNetwork. И все остальные низкоуровневые фреймворки.

Указателей (на указатели) полно

И в любом другом компилируемом языке. Почему бы ему не начать с какого нибудь haskal++?

Потому что в Objective C все эти вещи взяты из C. Поэтому логично начать с C.

Структур полно. typedef-ы везде. Макросы везде.

Причем тут C?

Это всё части языка C.

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

Из deep си не используется ничего, а без этого язык прямолинеен и не сложнее того же пхп.

Что понимается под deep c?

Функции и макросы это не эксклюзив сей

Это часть языка C.

примитивные NS-структуры и две звездочки в единственном месте проблем не несут. В любой книге по объективу все это будет.

Может быть. Но лучше учить C по K&R, как мне кажется. Это общепризнанная классика от создателей языка. Впрочем я не настаиваю, если любая книга по объективу научит не хуже, почему бы и нет.

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

Пока рано ещё - Swift не дозрел ещё до продакшена. На конференции в Минске (MobileOptimized2015) среди всех iOS-разработчиков, которые пришли послушать про проекты на Swift, только 1 живой был, да и то достался девелоперу по наследству.

Все отмечали что при работе с ним ещё слишком много крашей возникает. То есть приходится бороться с тем, чего с Objective-C можно избежать.

Swift стоит применять только после того, как Apple станет создавать новые фреймворки на нём.

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

Интересные дела, спасибо за ответ.

Вопрос по теме – гибридные проекты имеют смысл, если проект на ObjC дополнять кодом на Swift, или в этом нет никакого смысла?

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

Например CFNetwork. И все остальные низкоуровневые фреймворки.

Которые на 90% просто *.h обертки над закрытыми либами, ага.

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

В iOS 8 это влечёт автоматическое увеличение проекта на 5 мегабайтов — в проект добавляется Swift-овый рантайм. Предполагаю, что к выпуску iOS 9 он утрясётся и будет поставляться в ОС, но не факт.

А так — в теории проблем нет смешивать ObjC и Swift. Всё работает, интероперабельность нормальная.

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

Ну да. Если ничего не знаешь и только начал писать, то с ведром проще. Знакомый написал на ведре дня за 3 все, а с яблоком тыркался неделю только, чтобы hw заработал.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Ну да. Если ничего не знаешь и только начал писать, то с ведром проще.

Если что-то простенькое делать - и там, и там легко. Если что-то сложное - то ios гораздо проще из-за простого lifecycle'а гуёвых элементов и отсутствия честной многозадачности (нет многозадачности - нет проблем). У андроида все сложнее. Сложный лайфцикл у всего, начиная от активитей, заканчивая простыми вьюхами. Передача параметров между активити/фрагментами - тот еще гемор. Честная многозадачность - дает больше свободы, ну и геморроя добавляет.Из-за того что 1 вещь можно сделать 5-6 способами в групповых проектах часто начинается каша из подходов и паттернов. Частые обновления SDK, обратная совместимость, и конечно же, аццкий зоопарк устройств в которых некоторые вендоры обязательно что-то ломают в API (гребанный гнусмас). Хотя надо отдать должное, если есть какая-то нестандартная задача, то определить возможность ее реализации под iOS можно только после недельного курения доков, в то время как под андроид можно все, правда неизвестно как именно и через какое место.

Вот как то так. Мнение мое и не обязательно верное.

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

Если что-то простенькое делать - и там, и там легко.

Ну, если смотреть относительно того, что ты описал ниже, то да.

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

Всё перечисленное не требуется при разработке 96,66% приложений. Я за 3 года разработки так и не умею сокетами пользоваться, но приложения в магазине есть, пользователи довольны, брат жив.

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

В любой книге по объективу все это будет.

А вот и неправда. Практически все книги подразумевают, что ты знаешь синтаксис C или Java. Автор обычно отсылает к K&R или другой книге своего же авторства или того же издателя. Я говорю про вменяемые книги, а не про «От Hello World до @«Hello world» за 3,14 часа». Зачем в каждую книгу по объеткам си записывать ещё и разбор синтаксиса сей? Меня вот задолбало, что каждый раз когда хочу углубить свои знания по какой-нибудь теме я читаю одну и ту же хрень про @""-строки. После того как я в десятый раз начинаю читать про [], мне становится уныло и я закрываю книгу.

yurikoles ★★★
()

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

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

Там же полно книжек по программированию под афон, вот с них и начать

Не рекомендую. По моему опыту (не факт что репрезентативному), из людей прошедших курсы «научись прогать под <нужное подставить>», которые ведуться по таким книжкам, получаются отвратные программисты. Люди же, которые сначала изучают язык, а затем аспекты его применения, может и медленнее на старте, но в последствии качественно растут гораздо быстрее. Проверено на разных людях (флегматик и холерик), с разным базисом (php-шник и дотнетчик). Хотя может тут и личностные качества сказались (особенно дотнетчик, очень спокойный, но настырный парень), но пол-года назад ребята сменили работу (там где мы познакомились была реальная жопа), писал им рекомендательные письма, так потом их работодатели звонили и спрашивали «Есть еще такие? Возьмем на мид-позиции».

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

изучать язык на ходу получается нельзя? :)

Можно, но как правило люди начинают оперировать тем, чему научились с книжки/курсов и часто попадают в ситуации «а чё? так тоже можно было».

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

Ерунда всё, от человека зависитЪ.

Само собой. Просто разные подходы - разные затраты по времени. А время - дорого.

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

на objc писать проще чем на жабе

window.items.().add(builder.createWidget(modelobject,provider.getRoot()));

vs

[[window items] add:[builder create:modelobject] provider:[provider getRoot]];

Спасибо, нафиг-нафиг.

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

no-dashi

кукарекает про эстетичность синтаксиса


Это тоже самое, что сравнивать программы по красоте их пусковых иконок.

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

Учу сейчас Си по K&R (гуглю в 7 раз больше, чем в книге читаю. За 4 часа вчера нагуглил 3984728934 запросов и прочитал всего 2 страницы). Но суть не в этом. Не будет ли правильным сейчас начать учить Java (ибо я так подумал, у меня есть Android, работы по Android в Израиле больше + можно использовать на серверах)? Или же лучше остаться учить Си, освоить его хорошо и попутно учить Go/Python/Ruby/Java (если всё таки захочу писать под Андроид)?

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

есть мнение, что Си знать любому программисту вообще обязательно (как и C++). даже если не используешь. потому что через эти знания понимаешь как все работает.

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

без знания С++ часто на работу не хотят брать, даже если он не нужен (или нужен редко). но это зависит от области деятельности.

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

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

waker ★★★★★
()

если опыт (и то минимальный)

Хорошо хоть не нулевой.

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

Хз, обычно от перловиков или backend разрабов на ror/django не требуют знаний C++ (как собственно и от Android). Вот много раз видел, где требовалось понимание кода C для iOS разрабов, это да, но не C++.

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

я в данный момент работаю перловиком и бакенд разрабом (nodejs). от меня требовали знание C/C++/C# на интервью. в нашей конторе это стандарт для любого работника в R&D. (и да, собсно говоря, на C/C++/C# периодически надо кодить, т.к. проекты пересекаются)

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от mkrvdns

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

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

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

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

Во, теперь понятна ваша мысль чуть более, чем полностью.

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

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

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

неее, туда я точно не хочу. там же жара. мне здесь лето за пару месяцев надоесть успевает, а там оно круглый год. плюс там перманентная война с Палестиной. а я противник любых военных действий в принципе.
вроде бы говорили, что наша компания планирует часть разработчиков разместить на Крите. пока всё это непонятно, но я точно не хочу на Крит. моя мечта - Шотландия: туман, прохлада. или вообще куда-нибудь на север. на Аляску, или в Исландию, где всегда +10.

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

Тоже люблю холод, хочу переехат отсюда куда-нибудь подальше на север.

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