Что из себя представляет программирование под iOS?
Всем привет.
Много лет программирую на PHP, JS, CSS, HTML.
Встала необходимость создания мобильного приложения для iOS.
Сперва посмотрел в сторону phonegap, после детального изучения продукта, понял что в будущем столкнуть с большими ограничениями в разработке и решил отказаться от этой идеи.
Купил Mac, начал читать The Swift Programming Language, посмотрел несколько вводных уроков на YouTube.
После этого возникло несколько вопросов:
1. Достаточно ли изучения только Swift или все равно придется изучать Objective-C?
2. Нужно ли/стоит ли использовать какие то framework'и/готовые решения или все писать самому?
3. Как организовывать код внутри проекта, как хочу или есть какие то правила?
На самом деле вопросов гораздо больше, не все удается сформулировать.
Сами понимаете, при переходе с PHP меняется сама парадигма программирования.
Прошу подсказать что почитать, что обязательно почитать, может какие то действительно ценные ресурсы?
А вы делать не пробовали? Вот сядьте и делайте, сразу сами найдёте ответы на все свои вопросы. Все ваши вопросы про архитектуру - для этого тоже есть специальные книжки. Лень читать? Ищите циклы статей аля "пишем то-то на Swift за 21 день" и учитесь.
Вы вопрос читали или просто ответ ради ответа? Программировать пробую, книги читаю, статьи читаю, видео смотрю. Hello world делать научился. Вопрос в том что дальше? Интернет полон "блогов" про hello world.
Извините если не вовремя.
1. Учится надо на Objective-C. При написании кода возникает МНОГО вопросов, для большинства на Objective-C есть ответы на stackoverflow.com. Запустите название любого класса вылетит stackoverflow.com. Учить Swift по ютубу не получится. Рано для Swift, годик-другой и все перейдем на него.
2. Как и везде есть куча библиотек и оберток.
3. Главное отличие - девайс маленький!!! Это не смешно, но гиморойно, для примера: загружаются 20 картинок, если по очереди (синхронно), то пользователь не поймет ожидание и удалит программу, надо грузить по несколько (асинхронно) причем загрузится первой картинка №4 далее №2№6№12 и тд и все медленно. Нельзя построить циклы: 1. Загрузка; 2. Обработка; 3. Вывод. Нужно все делать одновременно, получается "машинка на шнурочках". А потом вылетит ошибка и после пары часов поисков вы узнаете, что возможно только 8 потоков загрузки и 2 занято системой :).
Спасибо за комментарий. По поводу Obj-C и Swift, то с синтаксисом последнего я уже разобрался, да и глядя на Obj-C код не сложно догадаться как это написать на Swift. А вот по поводу примеров на stackoverflow и подобных ресурсах, то тут как раз проблема: часто в примерах используются функции которые уже deprecated в SKD8.
метод deprecated, боюсь это недостаток учебников, воспользуйтесь www.imaladec.com/story/content-lessons. Да неприятности с поисковым конторолом есть.
..."глядя на Obj-C код не сложно догадаться как это написать на Swift..." - это Вы оптимист батенька, одна из причин почему я не перехожу на Swift - кривизна конструкций наследуемых из чистого (не C) оbjective-C.
Да string в Swift - это просто счастье. Знаки !? тоже изюм. Но как только работа с железом - это кусок дерьма какой-то, причина понятна Swift это обертка для Си и опять причина кривизна наследуемых конструкций, может сейчас ситуация стала лучше, но молоко раньше было слишком горячим :)
Когда у меня пять лет назад встала подобная проблема (плюс еще и разработка под Андроид) - выбор пал на кроссплатформенный фреймворк Corona SDK. Он простой, на основе легко изучаемого языка Lua. И если не нужно разрабатывать чего-то совсем уж волшебного - то как раз самое то. И один и тот же код (с минимальными отличиями) - сразу под iOS/Android/Win/Mac. И практически моментальный просмотр результатов, кстати - тут люди с опытом сборки под Андроид обычно люто крестятся.