Источники информации для iOS-разработчика
Опубликовано:
Эта страница будет обновляться со временем, поэтому добавляйте ее в закладки. Если вы заметили, что какого-то источника из статьи уже нет, то вы можете сообщить мне об этом любым удобным для вас способом по одному из контактов доступных на странице обо мне или dway.link. Спасибо, что читаете мой блог, если хотите меня поддержать, то можете подписаться на мой канал или вступить в чат. Суть этого блога
В этой статье я буду собирать все материалы, которые важны для iOS разработчика. Здесь не будет бесконечно растущего списка ссылок на статьи про iOS разработку, для этого есть множество рассылок и каналов в телеграме, на которые вы сможете подписаться сами, если захотите. Ссылки на каналы и рассылки будут в этой статье. Не вижу смысла быть еще одним человеком, расспространяющим то же самое.
Оглавление
- Начало пути
- Курсы
- Менторство
- Xcode
- Отладка (Debugging)
- Objective-C
- Swift Intermediate
- Frameworks
- SwiftUI
- Управление памятью
- Многопоточность
- Локализация и интернационализация интерфейса
- Core Animation
- Системы сборки проектов
- Instruments
- ASO (App Store Optimization)
- Дизайн (Design)
- Дополнительные материалы
- Интересные сайты для исследований
- Где брать информацию
Начало пути
Недавно я наткнулся на следующие видео от Кирилла Дутова на YouTube, который обучился iOS разработке с нуля и сейчас работает iOS-разработчиком.
Так же в этом блоге я уже писал про свою историю.
- Как стать iOS разработчиком в 2022 году бесплатно и без курсов
- Как я стал iOS-разработчиком за 8 месяцев
Наткнулся у него в канале (ссылка на который есть в разделе с каналами), на его интервью с ресурсами для обучения
Рекомендую посмотреть эти видео первым делом. Далее можете пройтись по ссылкам и посмотреть ресурсы в них.
Любые возникающие вопросы вы можете задавать в личку или в чат
Не знаю в какой из разделов добавить эту ссылку, т.к. тут 39 проектов на разные темы. Hacking with Swift - Learn Swift by doing 39 projects
- Изучаем основы программирования
- Изучаем Swift на базовом уровне
- Изучив Swift вы можете приступить к изучению UI компонентов в iOS. Чтобы пробовать верстать ваши первые экраны. Идеи и макеты для верстки можно взять в разделе Дизайн (Design)
- Изучаем основы UIKit
- Базовые представления (views) в UIKit
- Базовые элементы управления (views) в UIKit
- Apple. Проект, который можно скачать и посмотреть на многие UI компоненты, а так же модифицировать код и посмотреть на результат
- Apple. Archive. View Programming Guide for iOS
- Apple. Archive. Архивная, но все еще достаточно актуальная документация по UIViewController, Child ViewControllers, Autolayout, VoiceOver и презентацию экранов
- AutoLayout
- Apple. Auto Layout Guide
- Готовые сниппеты для часто встречающихся задач
- Старая, но очень подробная статья про внутренние механизмы работы Auto Layout
- Математические основы Auto Layout
- Бумага про то, как UI можно описывать системами линейных уравнений
- 40-страничный обзор алгоритма Cassowary, на котором основан AL
- После знакомства с UI элементами, вам стоит разобраться на базовом уровне, как приложение понимает на какую кнопку нажали и как вызываются обработчики. Для этого необходимо ознакомиться со следующими понятиями:
- Apple. HitTest
- Apple. Responder Chain
- Держим удар с hitTest
- Hacking Hit Test
- Hit-Testing in iOS
- Events iOS
- Responder Chain, или как правильно передавать действия пользователя между компонентами
- Следующим этапом является понимание жизненного цикла объектов. Помимо моих ссылок вы можете погуглить другие материалы, чтобы хорошо разобраться в теме.
- UIView
- UIViewController
- Application
Курсы
В этом разделе только те курсы, которые я посмотрел и они показались мне достаточно полными.
- iOS RSSchool 2021
- Стенфордский курс по iOS разработке
Менторство
Список сайтов, где вы можете поискать ментора, который ответит на ваши вопросы или посмотрит ваш код. Я на этих сервисах не зарегистрирован.
- Формат видеозвонков 1 на 1, и более дешевые на 2-3 человека. Есть тестовый 15-минутный звонок (solvery.io)
- Обучения по неделям, есть разовые консультации и видеозвонки. Есть тестовый видеозвонок (askmentor.io)
- Обучение идет только в рамках чата. Для каждого ученика составляется индивидуальный план развития (mkdev.me)
- Открытое сообщество наставников, где можно найти даже тех, кто обучает бесплатно. Договариваетесь об обучении самостоятельно (getmentor.dev)
- Обучение с личным ментором с любого уровня по индивидуальному плану, оплата ежемесячно (itkadr.ru)
Xcode
Xcode – основная IDE для разработки кода под iOS, MacOS, tvOS, watchOS. Поэтому будет хорошо, если вы знаете как им пользоваться.
- Apple. Xcode help
- Сайт наглядно демонстрирующий работу горячих клавиш в Xcode
- Изучаем основную IDE для написания кода (Xcode)
- Что такое сниппет кода
- The Xcode Build System
Так же есть IDE от компании JetBrains, которая называется AppCode, но я в любом случае советую вам начать с Xcode. Так как Xcode это IDE от Apple, следовательно она всегда содержит все последние изменения структуры проектов настройки сборки проекта, а так же она используется большинством разработчиков под ОС от Apple, в то время как AppCode будет это поддерживать через какое-то время.
Вы можете попробовать обе IDE и решить какая вам больше нравится.
Отладка (Debugging)
Вынес свои заметки в отдельную статью "Заметки по отладке iOS приложений", там есть ссылки и примеры кода.
Objective-C
Скорей всего, рано или поздно, вы столкнетесь с Objective-C, поэтому вот вам инструмент, который поможет вам конвертировать Objective-C код в Swift. Советую вам понять закономерность, как происходит конвертация, чтобы в будущем вы могли спокойно читать Objective-C код без сторонней помощи.
Swift Intermediate
Frameworks
- Apple. Introduction to Framework Programming Guide
- Apple. Create an XCFramework
- Apple. Distributing Binary Frameworks as Swift Packages
- Static and Dynamic Libraries and Frameworks in iOS
- Why XCFrameworks Matter
- Руководство для начинающих по линкерам
SwiftUI
На данный момент я не пишу на SwiftUI, но в будущем я думаю мы начнем его использовать чаще, поэтому в этой секции мало материалов, но они как основа для будущих знаний.
- Apple. Базовый туториал по SwiftUI
- Apple. Туториалы по созданию простых приложений на SwiftUI
- Объяснение каждого протокола SwiftUI
- Документация для SwiftUI со сниппетами кода и гифками
- Очень полезные статьи по SwiftUI
- База знаний про SwiftUI, собранная в одном месте
- Анализ того, как реализовать сложные формы в SwiftUI с максимальной производительностью – с помощью Canvas, Shape или изображений.
Управление памятью
- Swift.org | ARC
- Память в Swift от 0 до 1
- Objective-C Automatic Reference Counting (ARC)
- Advanced iOS Memory Management with Swift: ARC, Strong, Weak and Unowned Explained
- Топовый обзор того, как weak references реализованы в разных языках: Objective-C, Swift, Rust и C++, и чем отличаются алгоритмы у них под капотом.
- Surprising Weak-Ref Implementations Swift, Obj-C, C++, Rust, and Vale
- Накладные расходы на использование Weak
- Github. Objc-weak.h
- Github. NSObject.storeWeak
- Swift 4 Weak References
- Weak vs unowned in Swift. What are the internal differences?
- Жизненный цикл объекта в Swift
- В исходниках Swift
- AutoreleasePool
- Apple. NSAutoreleasePool
- AutoreleasePool в Swift
- AutoreleasePool и RunLoop
- Собственная реализация AutoreleasePool
- WWDC 2018. iOS Memory Deep Dive
Многопоточность
- Подробный гайд про все (ну или почти) способы синхронизации потоков, доступные в Swift
- Огромный гайд по всем доступным в iOS подходам к реализации многопоточной логики. Для каждого разбираются основные примитивы и кейсы использования. Бонусом идут общие советы по дебагу многопоточного кода. В общем, идеальная статья, чтобы периодически освежать свои знания.
Локализация и интернационализация интерфейса
- Apple. Localization. Expanding Your App to New Markets
- Apple. Localization topics
- Apple. Localizing Strings That Contain Plurals. stringsdict
- Language Plural Rules
- Apple. Archive. Internationalization and Localization Guide. Supporting Right-to-Left Languages
- WWDC
- Streamline your localized strings
- Сервисы для удобного взаимодействия с переводчиками
- Crowdin
- POEditor
- weblate. Есть self-hosted решение. Open-source
Core Animation
- Apple. Archive. Core Animation Programming Guide
- CALayer.com WebArhive
- Quick Bits: Delaying Animation Loops
- Quick Bits: Simple Text Label Transition
- CATransaction in Depth
- CAShapeLayer in Depth, Part I
- CAShapeLayer in Depth, Part II
- Существует приложение KiteApp, которое позволяет дизайнить анимации на
CoreAnimationи само это приложение сделано с использованиемCoreAnimation.
Системы сборки проектов
Instruments
ASO (App Store Optimization)
App Marketing Tools For Developers
Сервисы:
Статьи:
- Apple. Optimizing for App Store search
- 7 quick tips for app store optimization
- 8 Tips to Optimize Your Keywords List in App Store Connect
- Много заметок по ключевым словам
Дизайн (Design)
Список сайтов, где можно брать/покупать дизайн интерфейса приложений, чтобы учиться верстать и просто вдохновляться.
Дополнительные материалы
- Apple. Documentation Archive
- Apple Platform SDK API Differences
- Разбор Big O нотации на сниппетах Swift кода. Попробуйте поиграть с ними руками прямо в Xcode, чтобы прочувствовать разницу в производительности.
- Представление чисел с плавающей запятой в компьютере
- Вариантность в программировании
- When do you need to report your app’s use of encryption?
- Regexes vs Combinatorial Parsing
- UI Hitches
Интересные сайты для исследований
- 3000+ экранов для покупки подписки. Можете посмотреть на решения других компаний и решить как сделать вам.
Где брать информацию
Ссылки на блоги
На некоторые блоги можно подписаться через RSS. Я уже несколько лет пользуюсь сервисом Feedly, который меня еще ни разу не подводил, но вы можете найти любой другой сервис для RSS.
- Krzysztof Zabłocki
- objc.io (Не только про Objective-C)
- Mike Ash
- Donny Wals
- Use Your Loaf
- AppCoda
- NSHipster
- Holy Swift
Если вы предпочитаете смотреть видео
- talk.objc.io (Не только про Objective-C)
- PointFree
- Essential Developer
- Design Code
- Stewart Lynch
- Vincent Pradeilles
- CreateWithSwift
Ссылки на еженедельные рассылки
Каналы по iOS в Telegram
- Developer's way
- Канал Кирилла Дутова
- iOS Ninja
- SwiftUI dev
- Readaggregator - iOS, Swift, Apple, Programming, Mobile
- Dodo Engineering
- iOS.Devs
- iOS Good Reads
- Dodo Mobile
- M O B I L E
- Книги для программистов
Каналы с вакансиями в Telegram
Это просто собранный в одно место список каналов с вакансиями, я с ними никак не связан и никакой ответственности не несу.
Можете использовать его по началу, чтобы просто следить за вакансиями и смотреть какие требования предъявляются к разработчиками на эти вакансии.
- Profunctor Jobs
- Mobile Dev Jobs — вакансии и аналитика
- Job for Mobile. iOS, Android, React Native
- IT Relocation (Inflow) — канал с вакансиями от IT-компаний, предлагающих релокацию из России и стран СНГ за границу.
- Вакансии от Алёны Владимирской — вакансии, отобранные вручную ведущим хантером рунета Аленой Владимирской.
- Solvery 👨💻 IT Вакансии и подготовка — вакансии в РФ и за рубежом для middle- и junior-специалистов.
- БУДУ — канал с подборками вакансий, а также мемами и полезными советами по трудоустройству.
- Работа в IT, вакансии — офферы для IT-специалистов от топовых компаний.
- Remote IT (Inflow) — вакансии и проекты на удаленку. Много предложений с релокацией.
- Finder.vc Удаленная работа — вакансии — крупнейшая площадка для поиска удаленной работы.
- Антирабство — вакансии для IT- и digital-специалистов, собранные вручную.
- Remote Jobs — канал для поиска IT-вакансий за рубежом.
- Distantsiya — фриланс-проекты и вакансии на удаленке.
- SEO HR, digital-вакансии, офис и удаленка — канал с вакансиями для IT- и digital-специалистов. Много предложений с релокацией.
- Вакансии на Джинне — бот для поиска работы.
- Работа в Сколково — канал с вакансиями экосистемы «Сколково».
- Job for Junior — вакансии для начинающих IT- и digital-специалистов.
- Работа для программистов — вакансии для представителей разных IT-профессий.
- Dream Job — Вакансии — вакансии в крупных международных и российских компаниях.
- Telegram IT Job IT — большое количество вакансий с оформлением в штат.
- Careerspace — вакансии с карьерным ростом.
- Вакансии в IT от hh.ru — наиболее интересные вакансии с известного сайта для IT-специалистов.