Нотатки лінгвомана

Блог про подорожі, країни, мови, програмування, музику, книги та купу інших речей, які мене захоплюють

The way of Xcoder. Назад шляху нема.

В черговий раз пишу після тривалої перерви, і вкотре кажу собі, що потрібно зробити блоґ основним майданчиком для думок, ідеї та пам’яток собі й людям на майбутнє.

Цього разу причина написання посту проста — я вкотре змінив сферу діяльності і повернув життя у кардинально новий напрям — розробку під iOS, а можливо, в майбутньому і під Mac OS. В цей момент якраз минає 60 днів з початку стажування iOS-девелопером у Petcube.  І цей пост я пишу більше для себе як пам’ятку про те, чому я встиг навчитись за ці 2 місяці.

До початку стажування у Petcube я протягом року у вільний час вчив Objective-C та основи розробки під iOS, але все ж ці 2 місяці інтенсивної роботи виявилися просто безцінними.

objective-c code

Можливо, у майбутньому я розкрию детальніше кожен з пунктів, а тут просто їх перерахую:

  1. Memory management: Manual Reference Counting vs ARC.
  2. Що таке @property і з чим його їдять. Навчився майже на автоматі писати геттери і сеттери при ручному управлінні. (Зараз ручне управління пам’яттю майже не використовується, але розібратися варто, щоб знати, що “під капотом”).
  3. Foundation Framework — робота з класами та об’єктами NSString, NSNumber, NSValue, NSArray, NSDictionary, NSURL, NSData і т.д.
  4. UIKit – робота з інтерфейсом. Створення інтерфейсу як програмно так і в Interface Builder. Тут набрався досвіду з усіма основними об’єктами та елементами: UILabel, UIButton, UIControl (робив кастомний контрол), UIPickerView, UITextView, UISlider, UIImageView, UISegmentedControl і т.д.
  5. Робота з UIViewController: створював власні контроллери під різні потреби. Тут є досвід з Auto layout як з коду так і з Interface Builder.
  6.  UITableView – великий та цікавий клас. Використовується практично всюди, а я його ще й юзаю у своїх словниках. Тут цікавий сам паттерн, делегатські методи  і т.д. Досвіду набрався по вуха, створював власний індекс для таблиці в якому одночасно є односимвольні літери та двосимвольні (наприклад: “A”, “B”, “CH”).
    Також сортування таблиці, оптимізація пам’яті під чапс динамічного створення комірок (cell).
  7. Делегати та протоколи. Дуже цікавий паттерн, який перші дні не піддавався, а потім все виявилося дуже просто і очевидно. Головний принцип: створення у потрібному мені класі делегатського протоколу, з оголошенням методів. А в іншому класі, який стає делегатом першого — імплементація вищевказаних методів. Все просто 🙂 Такий паттер часто використовується, коли нам треба лише частково скористатися методами чужого класу, але немає потреби його повністю наслідувати.
  8. NSNotifications – спочатку теж було складно як і з делегатами, але в результаті теж вийшло просто. Нотіфікейшени використовуються лише для того, щоб сповіщати об’єктів-слухачів про події, які вони слухають. Наприклад, UITableViewController слухає нотіфікейшени про зміну об’єкту CreditCard і якщо така зміна відбувається — одразу ж оновлює в себе дані про цю кредитну картку. Дуже зручна річ ці NSNotifications.
  9. Core Animation та View Animation – тут я навправлявся досхочу. Робив CABasicAnimation,  CAKeyFrameAnimation,  і у drawRect, і у CAShapeLayer і прості [UIView animationWithDelay…]; Найцікавіший момент: анімація лайку та анлайку з пульсацією та розбиттям серця.
  10. Quartz drawing – робота з різними кривими безьє, їх анімація, як проста так і CATransform3DMakeAffineTransform. Досвід малювання кодом в мене вже був на основі мови Processing.
  11. UIGestureRecognizer – робота з жестами на tap, pan, touch, swipe і т.д. Реагування на різні типи жестів.
  12. Добряче прокачав скіл по роботі з Git.

Якщо коротко, то це все на сьогодні, далі буду розкривати тему.

І головне. Всіх цих знань у такій кількості та систематизованій формі не було б в моїй голові без допомоги, нагляду, контролю і код-рев’ю мого iOS-наставника, Alex Shpuk. Дякую, вчителю! 🙂

P.S. А ще ж Apple нещодавно випустила Swift, коли його все вчити?
P.P.S. Попереду ще 2 місяці навчання і стажування. За цей період я маю навчитися програмувати, що завгодно навіть, якщо мене піднімуть серед ночі 🙂

Swift

 

Categories: Особисте, Програмування

Як зациклити анімацію CABasicAnimaton чи CAKeyframeAnimation у iOS » « Підсумки 2013 року

2 Comments

  1. Очень внушительный списочек получился как для 2 месяцев 🙂
    Keep mooving, man!)

    • anvarazizov

      14.06.2014 — 19:44

      Так, список серйозний, через 8 тижнів планую написати ще один не менший 🙂
      Дякую за науку! 🙂

Залишити відповідь

Your email address will not be published.

*

Copyright © 2019 Нотатки лінгвомана

Theme by Anders NorenUp ↑