Наработка опыта

swift
appstore
xcode
ios

#1

Всем привет! Столкнулся с такой проблемой, прочитал 80% офф учебника по Свифту, но понял что знания остались, но как применить их на практике я не знаю. Как можно натаскать себя на практике? Где можно взять задачи? Курсы на этом сайте вроде как не содержат домашнего задания. Например: сейчас я хочу написать приложение в котором будет храниться расписание из моего университета, но я не знаю с чего начать и что делать. Надеюсь что по поводу приложения кто нибудь даст наводку (какие view использовать, где хранить информацию и т.д). В университете проходим С++ + есть небольшой опыт в frontend - разработке на Android. Заранее спасибо!


#2

Найди единомышленников и замутите вместе примитивное приложение. Либо отдельные приемы отрабатывай по конкретным темам. )


#3

Обычно первое приложение чаще всего строят на основе tableview - и не зря: там много моментов, которые везде применяются. Ну и туториалов по приложению типа toDoList очень много. Вот с него и начинайте.


#4

На мой взгляд курсы это одна сплошная практика. Именно по ним научился…


#5

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

Расскажу немного о своём пути в изучении разработки под iOS. Изначально я прошёл пару рускоязычных курсов на одной иностранной обучающей платформе с повторением проектов за преподователем. Потом взял доступ к курсам здесь и просмотрел большую часть в режиме сериала в ускоренном режиме, попутно сравнивая новые знания с опытом от курсов на другой платформе и делая пометки.
Затем начал разработку собственного приложения, идея которого и привела меня к изучению разработки под iOS. В приложении будут использованы TableView, Core Data, AVPlayer для стриминга mp3 файлов из сети, WebKit для воспроизведения видео с ютуб, push-уведовления, firebase и in-app purchase.
За две недели удалось разобраться с AVPlayer (полностью сделать для него интерфейс для управления, интегрировать в Control Center, разобраться с многопоточностью), по большей части закончил с Core Data, интегрировал WebKit, кастомизировал TableView под себя. Считаю, что самые сложные моменты уже преодолены :sweat_smile:
Если посчитать соотношение полученного опыта и знаний при написании своего приложения и при прохождении всех курсов, то это наверное знаменитый принцип Парето – 80% от собственной разработки и 20% от прохождения курсов.
Поэтому рекомендую как можно раньше начать работу над реальным приложением.
Не знаешь с чего начать? Начни с разработки интерактивного прототипа в https://ninjamock.com/ Там можно в визуальном режиме собрать экраны из стандартных элементов и назначить кнопкам переходы к экранам, получается в итоге интерактивный прототип который можно тыкать как реальное приложение в браузере на айфоне.
Когда перед глазами будет готовая картина начинай переносить всё это дело в xcode в interface builder и потихоньку кодить. По табличке, по кнопочке так и разберёшься со всем. Но будь готов постоянно возвращаться к курсам, учебнику, много гуглить, курить доки и stackoverflow. И освой git, без него очень тяжко будет работать над реальным проектом.
Успехов! :sunglasses:


#6

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