Proposed subjects for becoming a better iOS developer. Subjects aimed for https://medium.com/@shtopointo
Enumerated in no particular order:
- the beauty of clean code: code refactoring, design patterns, best practices
- comparative analysis of code (before/after, different possibilities for solving a problem)
- commenting your code, code documentation
- implementing UI in code vs. implementing UI in the xib; auto-layout
- Git, or a primer to Git as a versioning system -- Git and best practices around iOS programming (Xcode project files, Core Data merging (or lack of), branching etc.)
- cocoapods
- lazy loading
- singletons (and the problems associated with them)
- blocks -- blocks and callbacks; blocks in notifications; yielding; general memory management related to blocks
- atomic/nonatomic
- strong/weak relationships
- accessors
- pointers
- delegates and data sources
- threads, threading
- complier: compiler information, pre-compile headers
- when views load (loadView, viewDidLoad, awakeFromNib)
- common good practices, e.g. init with nib directly in init
- networking, AFNetworking
- ReactiveCocoa
- a look at MVVM as an alternative to MVC
- subclass UIViews and perform UI code there instead of overloading it in a UIViewController
- iPads; universal app bundles vs. device specific ones (i.e. separate app for iPad)
- Some psychological points: Keeping yourself motivated; Working on your own projects; should you contribute to open source?; following people, discussions, trends; joining meet-ups; speaking at meet-ups; work on non-related subjects on the side; having patience; learning by doing
- picking another skill when you become better at Objective-C: server side development, networking, design, UX, marketing, sales etc. Reuse knowledge in between skills, broaden your horizon.