Найти в Дзене

Часть II: Ешь, молись, люби iOS

print("Флешбек: первая статья закончилась на фразе \"Итак, игра началась…\"")
Ой, прошу прощения. Это же не редактор кода. Давайте начнем все с начала.
Предисловие
Говорят, что сиквел всегда хуже чем первая часть, но мой блог и фильм Терминатор 2 поспорили бы. Флешбэк: первая статья закончилась на фразе "Итак, игра началась...". Думаю, у каждой игры должны быть свои правила и в моем случае,
Оглавление
print("Флешбек: первая статья закончилась на фразе \"Итак, игра началась…\"")
Ой, прошу прощения. Это же не редактор кода. Давайте начнем все с начала.

Предисловие

Говорят, что сиквел всегда хуже чем первая часть, но мой блог и фильм Терминатор 2 поспорили бы. Флешбэк: первая статья закончилась на фразе "Итак, игра началась...". Думаю, у каждой игры должны быть свои правила и в моем случае, правила устанавливал я сам (хорошо это или плохо, узнаем в конце трагичной этой истории). Можно отметить несколько правил, по которым я старался следовать, чтобы мое обучение было продуктивным.

  • Правило 1: лучше заниматься систематично по 4-5 часов в день, чем 10 часов в конце недели за раз. Звучит банально, согласен, но это работает. С первой статьи прошло четыре дня и скажу честно, я занимался по 5 часов в день (почему не больше? следующий пункт в помощь)
  • Правило 2: главное не сгореть. В любой сфере, если окунуться в нее и non-stop плыть ко дну с желанием узнать больше информации, возможно такое, что это приведет к ситуации, где вам просто не хватит кислорода. Поэтому большинство людей, начиная что-то новое, быстро сгорают и эта деятельность быстро надоедает им и они хотят поменять ее на еще что-нибудь. Будет правильно постепенно входить в этот океан.
  • Правило 3: важно попасть в нужный котел и вариться там со всеми. Подписаться на нужные каналы в телеге и стараться всегда быть в теме. Возможно этот пункт противоречит второму пункту, но очень важно соблюсти эту грань между не до и чересчур. У нас в Казахстане iOS сообщество очень дружное (думаю везде так), но в то же время иногда люди там могут и зарубиться:)
  • Правило 4: без ментора, далеко не уедешь. Нужен человек, у которого ты бы мог спросить нужные вопросы. Сообщество - это одно, а ментор - это совсем другое. Мне повезло, мой ментор - это мой родной брат, у которого еще есть машина (double kill). Ему я могу позвонить хоть в 2 часа ночи: не факт конечно, что он возьмет трубку, но как минимум я могу это сделать=)

Мой ментор может прочитать эту статью. Стоит отметить, что правила расположены не по степени важности. Поэтому, самый важный человек - это ментор. А если серьезно, самое главное - верить в себя и идти до конца. С этой ВКшной фразы, будет логично перейти к моему прогрессу.

Мой прогресс

Прежде чем начать курс на основе UITableView, решил пройти курс по Git, чтобы мог commit-ить свой проект. Создал аккаунт на github.com и следуя урокам, научился commit-ить в нужном branch-е, создавать, удалять и переходить между branch-ами в командой строке. Но быстро осознал, что легче это делать через Xcode, где я могу commit-ить локально и одновременно push-ить на мой Git. Сейчас, стараюсь делать это чаще.

Уроки на основе UITableView были записаны 2 года назад, ощущение такое, что за эти 2 года Xcode обновился миллион раз. Иногда просто не мог найти кнопку в интерфейсе, которая показывается на уроке. Эх, чтобы мы делали без гугла (использовали бы yandex). Помню, один раз на уроке tutor uncomment-ил блок кода, который начинался и заканчивался на /* и */, соответственно, используя горячие клавиша. Искал горячие клавиша, а оказалось нужно для начала установить плагин BlockCommentExtension в Xcode. Одним словом, было немножко неудобно следовать уроку из-за разных версии.

Приложение "myPlaces", которое сейчас я делаю, показывает список мест с фотографиями (а точнее: название, локацию и тип места), где можно покушать. Есть функционал добавления нового места и прикрепления фото к этому месту, используя UIAlertController. На данном этапе используется массив мест в Model файле, но со временем, надо будет улучшать модель. Это приложение классно тем, что использует разные аспекты. Например, использование расширения, чтобы подписаться под протокол типа UITextFieldDelegate и UIImagePickerControllerDelegate, для того чтобы не загромождать наш класс. Еще одним примером может служить работа с картинкой (округление квадратной картинки и разрешение пользователю edit-ить рисунок). В будущем, планирую дополнить картой и использовать наш любимый Realm, чтобы пользователь мог сохранять добавленные места.

Позавчера побывал на Code Review от Cocoa Heads. Рассмотрели проект "Qulynym" двух школьников, которым по 15 и 16 лет и которые выиграли конкурс от Apple. Честно скажу, понял только около 30 % всей дискуссии, но было очень полезно. Надеюсь, в следующий раз процент увеличится.

Программирую сейчас на macbook air 2012 года и иногда почти всегда он в шоке от моих действии в Xcode, поэтому решил запускать приложение на своем телефоне. Подумываю купить macbook pro, а то, как-то это неправильно быть iOS разработчиком без нужной машины. Буду дополнять приложение разными фичами и надеюсь скоро вернусь с очередным словом о моем прогрессе. Планирую после этого приложения, начать свое, есть несколько идей - осталось выбрать одну.

p.s. приложение "myPlaces", которое я пилил, сейчас на таком этапе:

                                       app myPlaces
app myPlaces