
去年,我在微博上發(fā)起了100天閱讀博文的行動。具體就是,每天讀一篇 iOS 開發(fā)相關的技術博文,并在微博上分享自己的讀后感。對于在開發(fā)、工作、和面試中常見的問題,通過這段時間100篇博客的閱讀,我產生了自己的一些心得體會,分享如下。至于想看博客原文的朋友,文末也有相關鏈接。
第一個感觸就是iOS開發(fā)真是博大精深。我一開始的文章來源定為Medium、Swift Summit、Realm、Apple WWDC。這些渠道都是經過篩選的上佳博文和視頻,而且話題廣泛,涉及基礎架構、語法框架、性能優(yōu)化、開源等方方面面。
雖然我在開始做100天博文閱讀之前只確定了30到40篇待讀文章,但是每讀完1篇文章,網站又會給我推薦1到2篇相關或延展閱讀;同時我又會對文章中不清楚的地方進行思考和搜索,這就又發(fā)現了不少很好的博文博客,例如喵神的博客、微信讀書團隊的博客、以前忽視的WWDC視頻。久而久之,100篇就不知不覺得積累到了。
最后做到第100天的時候,我還剩下幾十篇文章特別想去研究閱讀、還有很多疑惑想去思考總結,在iOS開發(fā)中,好的文章總是層出不窮。即使我讀的100篇博文數量不少、涉獵廣泛,還有例如逆向開發(fā)、安全、持續(xù)集成、測試等方面我沒有機會去研究。這么多值得探索的地方,恰恰說明,iOS開發(fā)遠沒有到了沒人要的地步,而我在這方面的學習也遠遠沒有到達盡頭。
第二個感觸就是做一件事情堅持100天真是不容易。無論是選題、閱讀,還是最后寫讀后感,都是一件勞神勞力的事情。而在這100天每天都花時間閱讀,要確保其中從不間斷,無論這天發(fā)生什么事情,確實十分勞累。
一開始的閱讀因為是我一直關注的話題,加上我又有iOS開發(fā)的基礎,所以理解起來很快,頂多算是知識的梳理和總結。后來看的博文涉及全新的知識點,加上100天中間WWDC如期而至,大量的更新迅速將我那些微薄的老本吃光。這個時候就捉襟見肘了,每天花在閱讀和理解的時間從1個小時猛增到3個小時左右,然后碼字也越來越多——因為思考的時間相對較短,所以寫出來自然不夠精煉。
在這么多困難之下,我堅持下來的原因不是因為我多么有毅力,而是因為每天大家對我博文的積極評價,這就要說到下一個話題了。
第三個感觸就是大家的反饋。無論寫什么,總有網友和開發(fā)者朋友和我一起閱讀全文,并對我的讀后感進行評價。很多觀點讓我茅塞頓開,也有很多點贊和轉發(fā)讓我充滿感激。
看著小伙伴們這么認真、每天都在積極努力地和我一同學習、研究博文并進行思考,想偷懶的我愈發(fā)自慚形愧,敷衍了事和半途而廢的心理也就煙消云散了。
這100天可能是我2017年度過的最充實的100天。我其實一直覺得開發(fā)也罷,學習也好,就像中藥和老火湯是一個感覺。真正好的技術水平,也是那么一個時辰一個時辰熬出來的。希望大家2018年每天都在進步。
App 開發(fā)
- 深入理解 RunLoop
- CPU vs GPU · iOS 核心動畫高級技巧
- iOS 保持界面流暢的技巧
- 單向數據流動的函數式 View Controller
- 微信讀書 iOS 性能優(yōu)化總結
- 微信讀書 iOS 質量保證及性能監(jiān)控
- SOLID Principles in Swift
- Swift with a hundred engineers
- Tales of a rewrite at Lyft
- Re-architecting Pinterest’s iOS app
- Immutable models and data consistency in our iOS App
- Optimizing App Startup Time
- Managing Consistency of Immutable Models
- Migrating to Swift 3
- Getting to Swift 3
- Building Mixed-Language iOS Project with Buck
第三方開源庫
- 如何將 iOS 項目的編譯速度提高5倍
- 如何打造易擴展的高性能圖片組件
- iOS 啟動連續(xù)閃退保護方案
- GYDataCenter:高性能數據庫框架
- GYHttpMock:iOS HTTP請求模擬工具
- 預加載與智能預加載(iOS)
- 使用 ASDK 性能調優(yōu) - 提升 iOS 界面的渲染性能
- AsyncDisplayKit 2.0 Tutorial: Getting Started
- AsyncDisplayKit 2.0 Tutorial: Automatic Layout
- Introducing Lottie
- Introducing Plank: Immutable model generation for iOS
- Engineering Signature Rendering on iOS with UberSignature
開發(fā)工具與調試
- Visual Debugging with Xcode
- Debugging Tips and Tricks
- Improving Existing Apps with Modern Best Practices
- An Introduction to the Swift Package Manager
- Charles Proxy Tutorial for iOS
- fastlane Tutorial: Getting Started
語法性能
- Swift 性能相關
- Swift 性能探索和優(yōu)化分析
- Optimizing Swift Performance
- Understanding Swift Performance
- The Objective-C Runtime & Swift Dynamism
- Protocol-Oriented Programming in Swift
- Building Better Apps with Value Types in Swift
- Introducing Protocol-Oriented Programming in Swift 3
- Protocol and Value Oriented Programming in UIKit Apps
- Manual Swift: Understanding the Swift/Objective-C Build Pipeline
iOS 框架使用和優(yōu)化
- 再看關于 Storyboard 的一些爭論
- NSSecure?Coding
- iOS Accessibility Tutorial: Getting Started
- How iOS Security Really Works
- Advanced Animations with UIKit
- Introducing Drag and Drop
- Mastering Drag and Drop
- Extend Your App's Presence With Sharing
- Extend Your App’s Presence with Deep Linking
iOS 11 更新
人工智能 ? 增強現實
- Introducing Core ML
- Core ML in depth
- Natural Language Processing and your Apps
- Vision Framework: Building on Core ML
- Introducing ARKit: Augmented Reality for iOS
架構
- iOS 響應式架構
- iOS 組件化方案探索
- iOS 組件化 —— 路由設計思路分析
- Do MVC like it’s 1979
- Model-View-Controller (MVC) in iOS: A Modern Approach
- Presenting Coordinator
- A dumb UI is a good UI: Using MVP in iOS with swift
- Introduction to MVVM
- From MVC to MVVM in Swift
- Bindings, Generics, Swift and MVVM
- MVVM with Coordinators and RxSwift
- Introduction to Protocol-Oriented MVVM
- MVVM with RxSwift
- Implementing MVVM in iOS with RxSwift
- Simplification of iOS View Controllers: MVVM or Presentation Controls?
- Meet VIPER: Mutual mobile's application of clean architecture for iOS apps
- iOS Project Architecture: Using VIPER
- Architecting iOS Apps with VIPER
- 250 Days Shipping With Swift and VIPER
- VIPER to be or not to be
- Unidirectional Data Flow in Swift: An Alternative to Massive View Controllers
- Engineering the Architecture behind Uber's New Rider App
- iOS Architecture Patterns Demystifying MVC, MVP, MVVM and VIPER
大前端 vs. 原生態(tài)
- An iOS Developer on React Native
- React Native: A year in review
- Comparing the Performance between Native iOS (Swift) and React-Native
- Apple’s refusal to support Progressive Web
科技前沿信息
- This is How Google will Collapse
- Facebook Open Source 2016 year in review
- Complexion Reduction: A New Trend In Mobile Design
- Communication Between Designers and Engineers
- 100 Days of Vector Illustration
- Apple Culture After Ten Years of iPhone
- Bike-sharing app comparison: Mobike vs. ofo vs. Bluegogo
- Revisiting The Unicorn Club