LINUX.ORG.RU

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

 


0

2

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

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

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

Как обычно читаешь мануалы -> пишешь. У меня один знакомый с большим трудом, но осилил, хоть и разгвоздяй еще тот. Одумайся. Под ведро кодить намного проще.

crutch_master ★★★★★
()

Я советую такой путь:

1. Выучить C. Книга K&R отлично подойдёт. В XCode можно писать консольные приложения на C, больше ничего не надо. Это займёт определённое время, думаю минимум месяц.

2. Выучить Objective C. Если ООП понимаешь, то много времени не займёт. Если не понимаешь, то чуть больше. Опять же пиши консольные приложения. Книгу не посоветую, но в принципе их полно. У Apple есть какая-то книга на их сайте бесплатная (или гайд), если вдумчиво читать, его должно хватить, но лучше, конечно, хорошую книжку, где всё разжуют.

3. Купи любую книжку по iOS Development для начинающих и проштудируй её. Цель — познакомиться с самыми основами, как использовать XCode, и т.д.

После этого ты сможешь писать самые простые приложения. У Apple огромное количество документации на любую тему, выбирай куда углубляться и изучай. Также каждый год проводится WWDC и после каждого WWDC остаются десятки видео. Их очень полезно смотреть, если понимаешь английский язык на слух. Это, пожалуй, самый ценный источник, потому что рассказывают о технологиях те, кто её сделал.

В какой-то момент, когда более-менее хорошо освоишься, начни изучать Swift. Язык очень непростой, рано за него браться не стоит, но в какой-то момент выучить надо. Так или иначе ты с ним столкнёшься. Но настоятельно не рекомендую пропускать изучение C и Objective C.

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

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

а за девелоперский аккаунт они денег разве не берут?

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

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

Не особо нравится занятие наименованное написанием тегов, по этому собственно хочу из Веба уйти в что-то более адекватное (ну а т.к сейчас популярно моб.дев, то в него).

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

Язык очень непростой

Я так до Swift и не добрался, только прочитал обзорную книгу для ознакомления, но в чём с ним основные сложности, если кратко?

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

Выучить C... ...Это займёт определённое время, думаю минимум месяц.

Вот это пошутил!

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

Вот я тебе и советую как уйти в адекватный мобдев, а не в яблочную тюрьму.

Но вообще веб менять на мобильники это прямо как шило на банку шампуня.

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

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

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

Под ведро кодить намного проще.

лолшто?

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

Много чего под капотом спрятано. Без хорошего понимания того, как на Objective C писать (я бы ещё посоветовал без ARC несколько программ написать, чтобы понять, как reference conuting работает), как мне кажется, человек будет часто попадать в ситуацию, когда он не понимает, что происходит. Ну и в целом в языке очень много всего напихано — и ООП и ФП и паттерн-матчинг и reference types и value types. Если сталкивался с этим в других языках — проблем нет, а если видишь это в первый раз практически без опыта программирования — как мне кажется, человек просто это не поймёт.

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

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

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

а, тогда сорри, я неправильно понял.

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

Да не правда, на жабе можно вообще одной пяткой писать и иметь бабло. Тот же майнкрафт тому пример. На obj-c, чтобы писать... надо знать си, указатели и иметь реальный опыт отлова багов, знать устройство яблочных фреймворков, их там куча, и все они чрезмерно раздутые. Swift, конечно, хороший язык, но и тут знание архитектуры фреймворков никуда не деть, плюс objective-c более гибкий язык, поддерживающий кучу паттернов, а xcode по дефолту позволяет создать помойку из проекта на раз-два-три. Так что под андроид писать проще, но баги ловить на реальных устройствах удобней в apple. А те разговоры про «писать своё приложение и продавать в аппсторе» - это практически не реально, там уже миллионы приложений, дубликатов просто пруд пруди и все демпенгуют, т.к. написаны китайцами, всё бесплатное, все помешаны на встроенных покупках, что сводит аппстор к уровню помойки. Надо быть честным...в PlayMarket от гугла не намного лучше, но там, по крайней мере, можно возвращать бабло в первые 15 минут, после покупки.

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

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

waker ★★★★★
()

Сначала попробуй писать CLI-программы под OS X, изучишь Foundation, а потом переходи на iOS и GUI.

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

Иду таким путём: C -> Obj-C -> Swift.

Ну и дурак. Найди книжку по Objective-c (не помню автора и названия, давно было) что-то там «Objective-C 2.0». После того как наблатыкаешься с чистым objc, читай уже что-то прикладное по iOS и Foundation + «Design Patterns:Elements of Reusable Object-Oriented Software». Потом устраивайся на работу джуниором, желательно в сильную контору, пусть даже за дошираки, так и скажешь на собеседовании, готов работать за копейки, главное дорасти до крепкого мида.

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

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

Си там вообще знать не надо, т.к. от него по факту только синтаксис и проброс NSError **, остальное варится внутри [ ]. Про фреймворки вообще не понятно. Их во-первых всего 2 (если ты про уровни NS vs. CF), во-вторых CF бывает нужен только по особым праздникам.

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

Та книга уже устарела, многие примеры там уже не правильные (да тот же Hello World и тот не правильный там).

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

Что-то ты преувеличиваешь. Как это знать C не надо? Куча фреймворков написаны на С (и имеют С-интерфейс). Какие возможности C не используются? Функций полно. Указателей (на указатели) полно. Структур полно. typedef-ы везде. Макросы везде.

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

более того, мне даже вообще непонятно как можно писать на ObjC не зная C :)

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

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

Например?

Функций полно.

o_O

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

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

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

Причем тут C?

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

Из deep си не используется ничего, а без этого язык прямолинеен и не сложнее того же пхп. Функции и макросы это не эксклюзив сей; примитивные NS-структуры и две звездочки в единственном месте проблем не несут. В любой книге по объективу все это будет.

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

Говорят что кур доят.
Может лет десять назад так и было, но сейчас там такая же помойка как и в ведре.
И огрызок никуда не девался.
Сегодня ты делаешь приложение на котором они зарабатывают миллиарды, а завтра оказывается что тебя забанили и денег не дадут.

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

А у меня find /usr/include -name '*.h' | wc -l выдает 1799. Си сложнее в 89.95 раз?

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

Зачем вообще специально учить фреймворки и упоминать их как что-то важное? Это как «учить» <arpa/inet.h> или asprintf().

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

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

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

Их там около 20

Чувак, то что эпл называет фрэймворком - весь остальной мир называет библотекой. Фрэймворк там один - Foundation называется. Все больше нету.

PS: NS*/CF* - это, ребята просто нэймспейсы

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

Формочки клепать под iOS, впрочем, тоже достаточно сложно, чтобы было хорошо.

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

Да.

Фактически NS это [большей частью] объектив-сишная обертка над чисто-сишным CF, который и есть набор базовых библиотек навроде libc, glib, gobject, etc. В редких случаях NS покрывает CF не полностью, тогда ты просто берешь и прям так, не разуваясь, вызываешь сишные CF-функции. Собственно все.

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

Само собой, доки по NSObject, NSString, NSArray, NSDictionary придется каждую хотя бы по разу открыть :)

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

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

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

Т.е. другие типа не могут сравнивать? Вы одни такие что-ли уникальные?) Забавно.

другие могут что угодно, просто их мнение никому неинтересно, т.к. они неучи.

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