weak self

weak self

By 一三、波肥、喬喬
集結弱弱的我,也可以組成強大的社群。三個在 iOS 開發圈打滾的台灣工程師,專為 Apple & iOS 開發者而製作的 Podcast。內容涵蓋 iOS 與 Apple 開發圈的新知討論、踩坑經驗、人物採訪、社群活動、職場生活。每集皆提供節目筆記與章節跳轉功能。更多資訊請見官網 https://weakself.dev 或是 Twitter @weak_self
Where to listen
Apple Podcasts Logo
Breaker Logo
Google Podcasts Logo
Overcast Logo
Pocket Casts Logo
RadioPublic Logo
Spotify Logo
Stitcher Logo
25: 難道公司發大財了!?App Launch Time 加速面面觀
這集由波肥與喬喬聊聊: 為什麼要加速 App Launch Time? 什麼時候做? 以及怎麼做? 庫存已久的題目一次補完 { 完整節目筆記請按我 } 什麼時候做 App Launch Time 加速? 公司有在賺錢的時候 App Launch 的三個階段 Pre-main: Loading (MachO + dylib) / Rebase & Binding / ObjC Setup / Initializer Main: App 的入口 Post-main Pre-main 提到的笑話 Swift 專案裡的 main 去了哪? 由 @UIApplication 做完全部工作了 寫自己的 main.swift (程式碼) 各階段加速的不同策略 Pre-main Loading: 減少 App size;減少 dylib 數目 (merge pods); 或者變成 statically linked pods Rebase/Binding: iOS 13 幫你用 dyld3 做好 cache 了 Objc setup: 少點 ObjC code;少點 Category Initializer: 盡量用 +initialize 取代 +load Post-main: 少做事,多 lazy,盡量平行化處理 掃瞄沒用到 ObjC selector 的 script 測量,別猜! Xcode scheme 新增 env variable 可取得 pre-main 各時間: DYLD_PRINT_STATISTICS = 1 或 DYLD_PRINT_STATISTICS_DETAILS = 1 合併 Pods 的 plugin Pods 改 statically linked (Podfile example) MetricKit 的介紹文章 與 WWDC session 在用戶端測量 pre-main 所花時間的程式碼 奇技淫巧 抖音的重新排序 binary 方案 FB 的 binary layout optimize 關於此技術的其它相關評價 更多 weak self 聽眾信箱 weakself.dev@gmail.com 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
1:09:06
February 16, 2020
24: 你也是薪水小倫嗎?上班族如何利用上班時間精進程式功力
喬喬的雞湯賣藥電台再出發。 下班之後無心無力或沒時間加強技能,那可以在上班時間合理合法地學習嗎? 再問,怎樣搞定你的 PM,或說同事之間怎麼做人處事才好相處? { 完整節目筆記請按我 } 薪水小倫 Meme: 編譯太久滑一下推特,不小心就滑出去了 學習怎樣偷時間跟加速:縮短操作指令、IDE、打字時間、把重複的作業給自動化等等 Xcode 小技巧:Control + Opt + Cmd + F => Fix All。用來自動完成 Swift switch cases 很方便 把工作內容會用到的工具跟流程、看起來很眼熟的名詞,其背後的原理都弄熟 寫一些內部的工具、library 只會用 code 寫 UI 的人可以試試 Storyboard,反之亦然 練習讀程式碼的鑑賞力 利用既有知識來輔助學習新知識。幫自己搭梯子,降低學習曲線 透過寫作來學習組織知識架構 加強英文,讀官方文件算是很實用的路線 同事之間 怎樣搞定你的 PM?其實 PM 不好當。要懂 business domain、tech knowledge… 整理出「說人話」的文件給同事們參考 有問題及早回報。東西做不出來沒關係,不要最後一天才說 菜鳥工程師必修的 30 堂溝通課 - 工程師如何與 PM 溝通 Developing Strong Product Managers 從入門到卓越,產品經理技能檢核表與職涯發展路徑 好的產品經理,該有哪些核心能力 【PM夥伴攻略】如何跟工程師合作? PM與UX設計師間的互動血淚史!改變從不是一蹴可幾 《Code Craft》 更多 weak self 聽眾信箱 weakself.dev@gmail.com 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
1:07:19
February 9, 2020
23: 在家工作!WFH 時怎麼樣才不會 WTF
居家隔離?在家工作?聊聊遠端工作的利與弊。 { 完整節目筆記請按我 } 2020 iOS 工程師展望與規劃 其實跟往年差不多規律。 要學 Objective-C 的話: 可以從長輩的教材開始讀起 如果要學 Flutter 的話: 請回去聽 weak self S1E12 真的要學 SwiftUI 的話: 請回去聽 weak self S1E16 SwiftUI Learning Curve in 2019 WFH & 遠端工作 一些工具與流程可參考 InfuseAI Member Handbook 更多 weak self 聽眾信箱 weakself.dev@gmail.com 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
41:29
February 2, 2020
22: 喬喬賣藥電台:上班族業績與工程師技術債+如何跟強者同事相處+玻璃心同事
第二季開始啦!喬喬的賣藥電台,跟 13 聊了三個題目。 { 完整節目筆記請按我 } 工程師該不該放心大膽創造技術債? 你好,我是 weak self 的聽眾,也是工程師幹話的忠實讀者。想請問 weak self 對⟪工程師應該放心大膽地創造技術負債⟫這篇文章的看法? 弱弱的我如何跟強者同事相處的指南? 可以來一集,弱弱的我如何跟強者同事相處的指南嗎? 心理素質不夠強,連問問題都怕怕的 玻璃心同事? 跟同事的回饋或建議,彼此之間的不舒服? 更多 weak self 聽眾信箱 weakself.dev@gmail.com 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
1:05:31
January 19, 2020
21: @escaping vs @nonescaping
在某個假設的平行時空當中,這集 podcast 會是在討論肉身的 @escaping… { 完整節目筆記請按我 } 第一季統計 前五大熱門單集 12: 販售焦慮,Mobile 工程師能不學 Flutter 嗎? 14: 資深被資遣工程師 0: 如果你想要浪費一個人的暑假 1: Swift API 設計之 Value Type 與 Reference Type 5: 這裡沒有心靈雞湯配大餅 總播放次數 24,000+ 平均單集播放次數 1,100+ Twitter 追蹤者 930+ 聽眾捐款 $8,200+ 被垃圾車打斷次數 5+ 錄音檔損毀次數 6+ 第二季開始的節目走向 三人分頭製作節目,錄音人數可以兩人起跳,希望能夠擴大多元性跟庫存彈性、降低錄音壞掉的風險,穩定每週更新 13 的節目:偏開發圈時事、Apple 動向 波肥的節目:挑戰賽、技術導向 喬喬的節目:雞湯大師、賣藥電台(歡迎來信 weakself.dev@gmail.com)、接案經驗 會有名詞解釋專頁 1/27 春節休息一次 更多 weak self 聽眾信箱 weakself.dev@gmail.com 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
18:30
January 12, 2020
20: 幕後花絮之 1/11 回家投票
請回家投票!各位投票的結果會影響未來的節目內容。沒有錯,我們就是因為這樣來錄了幕後花絮。 { 完整節目筆記請按我 } 回家投票 本節目有提到的一些網站或資料。 個資風暴:劍橋分析事件 報導者風向戰爭與它的推手專題 打不死的內容農場──揭開「密訊」背後操盤手和中國因素 LINE群組的假訊息從哪來?跨國調查,追出內容農場「直銷」產業鏈 輸出台灣政壇勝選方程式,他到東南亞「賣策略」:我是測試民主的病毒 寫手帶風向不稀奇:AI產文、侵入私人LINE群,輿論軍火商已全面升級 專訪前「劍橋分析」業務總監:只要臉書的生意繼續,民主就有危機 台灣事實查核中心 島民衛星 補充資料:東部返鄉指南 除了難搶的鐵路外現在有三家客運加入,且皆在半價優惠中,沒搶到火車票的東部居民可多加利用,三家客運輪開 24 小時皆有車啊! 統聯客運 台北客運 首都客運 更多 weak self 聽眾信箱 weakself.dev@gmail.com 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
35:34
January 6, 2020
19: 年度最佳 bug
weak self 與小綠的年末大亂聊。你一定會在某些片段找到共鳴。 { 完整節目筆記請按我 } 段落一 MRC、LLVM @IBOutlet/@IBAction crash,可用 IBAnalyzer 解 frame -> Auto Layout Safe Area and iPhone X Review Team 的太太 Build Time 變長 桌機才叫生產力工具,筆電是開會工具 段落二 頂樓加蓋 vs 透天? 花蓮飯店草皮研討會 有波肥小裙子的感謝祭 太乾都會被自動剪掉 Watching a model train 魔幻冰箱 Mars 問 Swift dynamic keyword 小綠臨時的 #波肥挑戰賽 Swift class 的 instance func vs extension func 喔我們回來了 Sign In with Apple 的正確實作方式? 祝新年快樂 更多 weak self 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
54:41
December 29, 2019
18: 綠背影的聽力測驗之怎麼害人
在挑戰賽交鋒許久之後,終於把小綠 #greenback 請來 weak self 啦!我們想來聊當 team lead 的一些經驗,這集就先從招聘與面試談起吧。到底 team lead 在❌害✅hire 人的時候會考慮什麼呢? { 完整節目筆記請按我 } 最近怎麼這麼累 #greenback 在投影片第 37 頁 小綠 refactor 4000 多行的 class 歡迎贊助週五大半夜躲在倉庫錄音的 weak self 錄音錄到老婆奪門而出 其實我們草創的時候就 cue 過 Mars 了 怎麼 hire 人才不會害到自己 履歷怎麼來 小綠怎麼看待考演算法 會職稱對應的工作經驗 會看什麼來刷掉履歷 錯字會不會是個問題 自傳 亮點 面試與被面試 累積手感 人格特質:我會想要跟他一起工作嗎? 面試雙方都是賭注 做點基本功課 更多 weak self 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
1:06:56
December 22, 2019
17: 便宜行事的第二集—我就是那個奇葩同事
我們隨便聊,大家隨便聽~ { 完整節目筆記請按我 } 遇過的奇葩同事 遇過的奇葩同事🤣 - @GreasoWang Server-Side Swift Server side swift! @marslin_dev try! Swift 注意事項 是誰住在深海的大鳳梨裡 - @joe_trash_talk 講講 try swift 注意事項⚠️ - @GanNaSong try! Swift Tokyo 官網 波肥教你 build Swift source Maxed-out 16-inch MacBook Pro: is the upgrade worth it for developers? - @twostraws 這題我們沒辦法回答 找 @onevcat 上節目 我想知道是怎樣的時間管理,可以把工作 + 家庭 + 社群都做得很好 - @hokilaJ 這樣我想聽怎麼兼顧速度品質和價格 XD - @wenwen_1025 派遣工程師 我最近聽說派遣工程師很流行 有沒有iOS界的派遣女王(? - @myread02 派遣、約聘、外包、接案 個人接案: 「首先你是個業務,再來你是 PM,然後你是會計,最後你才是工程師。」 - 喬喬 更多 weak self 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
35:12
December 8, 2019
16: 資深工程師什麼時候才學 SwiftUI 跟 Design Patterns
標題不是一句話,是三個問題。越到冬天我們就來閒聊,輕鬆一下。也歡迎繼續丟雪片般的問題到 @weak_self 來~ { 完整節目筆記請按我 } 什麼樣才能稱為資深工程師 什麼樣才能稱為資深工程師 - @hanyu_chen_ios 什麼時候應該開始學習 SwiftUI 什麼時候應該開始學習SwiftUI - @stevezhou007 官方 SwiftUI Tutorials 100 days SwiftUI Challenge - Hacking with Swift by Paul Hudson Design+Code SwiftUI Course Design Patterns Design Patterns RxSwift 或 Combine - @ji3g4kami SOLID 原則 Swift 起手式不是寫一堆 protocols,回去複習第 2 集 RxSwift 一言以蔽之:非同步事件是以時間為 index 的 array,比如 event[第5秒] == .response(data) RxSwift 就是 Observer 的 Design Pattern 推薦閱讀官方文件 Design Patterns 文章列表 KKBOX iOS/Mac OS X 基礎開發教材 - 所謂的設計模式 搞笑談軟工 - Patterns Design Patterns 書單 輕鬆讀物 深入淺出設計模式 (Head First Design Patterns) 大話設計模式 聖經本 物件導向設計模式-可再利用物件導向軟體之要素 (精裝典藏版) (Design Patterns: Elements of Reusable Object-Oriented Software) 更多 weak self 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
33:11
December 1, 2019
15: Code Review 趴吐
上一集聊 Code Review 收到熱烈回響。波子欲罷不能,也來分享一下 TBD(Trunk Based Development),應該在台灣算比較不常見的開發流程與 Code Review 經驗。喬喬請假,涵宇代班。 { 完整節目筆記請按我 } 你們家 Branching Model Code Review 趴吐 TBD(Trunk Based Development) 直上 master Feature Flag 不 merge 只有一條線 phabricator 聽眾 wenwen_1025提問: 想了解 code review 到底要做到多細,如果要 review 到整個 story 的行為是否正確,那等於是團隊大家都要很了解每一個 story 要做的內容以及原本的行為,才有辦法 review 這樣寫對不對,但是這應該會降低不少團隊的產出 16 吋 MacBook Pro 到底有多香 MBP 2018 冰箱機 - Dave Lee New 16" MacBook Pro Review: A Developer’s Dream Come True - Kaya Thomas 的 MBP 實測 參考資料 讓 Google 教你 Code Review! 相關集數 14: 資深被資遣工程師 4: 或許我可以把 title 改成資深文件工程師 更多 weak self 官網 https://weakself.dev 主持人 一三、波肥、喬喬 Twitter @weak_self 提問箱 贊助 weak self
1:12:08
November 17, 2019
14: 資深被資遣工程師
休息兩週以後 weak self 強勢回歸,今天我們邀請到在 iOS 社群十分活躍、也是我們的第一位贊助夥伴涵宇。他要跟我們分享他被非自願離職的經驗,以及他在 Code Review 方面的心得。 這集的錄音過程還是不太順利。後半段會是 13 跟涵宇重錄對談,並插入一些波肥跟喬喬的錄音。 { 完整節目筆記請按我 } 歡迎乾爹涵宇 涵宇的履歷@CakeResume weak self 開放個人贊助啦 請見官網贊助說明 前菜:非自願離職的「好處」 被資遣的流程 失業的第一天到 公立就業服務機構 登記,基本上那邊會有完整的流程,總共可以領 6 個月。 失業後不要馬上就業,要至少失業約 14 天(以勞保紀錄為準),才能請領第一個月的失業補助金。 如果有領到第一個月的失業補助金,代表符合失業補助的資格,之後就業後在任意公司只要勞保投保日期滿 90 天,就可以再申請 提前就業獎勵 ,會用沒領完的失業補助金的一半來獎勵,假如你只請領了第一個月,那你的獎勵金就是 (6-1)/2 = 2.5 個月。 如果你順利在工作,可以領到工作的薪資,同時又拿到了 3.5 個月的失業補助,這對缺錢的人來說非常有幫助。 投保額度跟薪資有正相關,但上限約 45,800,每個月可以請領的失業補助金,是這個數字的 60%,一般的情況下你可以拿到 27,480/月。而有扶養的失業者,每個扶養人頭可以再加 10%,最多 20%。也就是說你若扶養 2 個人,你可以拿到 80%,為 36,640/月。 簡單計算: 一般人的 45,800 * 0.6 * 3.5(月) = 92,190 扶養一位 45,800 * 0.7 * 3.5(月) = 112,210 扶養二位 45,800 * 0.8 * 3.5(月) = 128,240(上限) (特別強調,3.5 裡的 2.5 要新工作(新投保)後90天才能申請哦) 以上數字只是印象,實際上要依真正請領到的數字為準。 其他還有連續失業等情況,就不註記在這裡了(更多失業給付的資料)。 主菜:跟著涵宇做 Code Review 初次遇到 Code Review 我透過 merge request 跟團隊 merge 了 說明在前前公司的時候的 code review 機制 前情提要:TDD、Nelson Code Review 怎麼改變我? 開始 Code review 之後我的改變 Code Review 需要哪些支援? GitLab CE(Community Edition) 少了2個我覺得關鍵的功能。(Approved 功能及 default template) .xcodeproj sort 的功能 Gitlab merge request template Chrome 套件 (GitLab - Tree view for code、Stylus) Code Review 與自我成長 每個人都會犯的錯誤!知識的詛咒!! 周哈理窗理論:我不知道我所不知道的,我知道的別人可能不知道。無限縮小我與別人之間的資訊不對稱,不管是對專案也好,對自己也好都是好的發展。 甜點:恥力很高的涵宇 常常被嗆? 順便回答 weak self 提問箱的問題 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱 贊助 weak self
1:03:58
November 10, 2019
13: 喬喬 Erasure
又是歡樂的一集!今天聊起 #weakself挑戰賽的 Type Erasure 與 Opaque Return Type。不過,怎麼某人的聲音到後半段就 erased 了!? { 完整節目筆記請按我 } 前言 上一集成為最熱門集數,所以跟新朋友打招呼、解釋一下我們的名稱 weak self 這個名稱,寫 Swift 或 iOS 工程師一看就知道。但我們其實沒有中文名稱,大家可以幫忙想 weak self, strong community 鐵人賽 iOS Developer Learning Android 系列 by @MarkFlyyyyy 30 天了解 Swift 的 Combine 最高觀看數 bug? 其他整理請見«13的開發者週報» xcode-install 我恨 PAT PAT 是什麼?看 code PAT 三不能: 不能做為變數型別用 不能做為 function 的 return 不能放在 Collection 裡 你是忘記還是害怕想起: Type Erasure 為何而生 PAT 難搞的地方有兩種: 有 Self 的 Protocol:Hashable 有 associatedtype 的 Protocol:IteratorProtocol 對應的做法: AnyHashable: 黑魔法 C++ AnyIterator: 用 generic struct 解決 範例請見這裡 對 AnyHashable 有興趣請右轉 Opaque Return Type weakself 的中文名稱是個 Opaque Type (Caller 決定 generic 是什麼) Opaque Return Type 則由 Callee 決定 generic 是什麼 避免 generiception: public typealias LazyCompactMapCollection  -> C where C.Element == ElementOfResult  = LazyMapSequence 也是對於 Type Erasure 的一種根本性解決手法 範例請見:https://gist.github.com/pofat/a411d785e593982868a54e140f48ad8f 那第三個問題,不能把 PAT 放入 collection 呢? 抱歉,還無法🤷‍♂️ 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
34:01
October 21, 2019
12: 販售焦慮,Mobile 工程師能不學 Flutter 嗎?
長輩有交代:「學好程式不用花很多時間啊,只要一輩子就夠了,一輩子很短的。」然後他又補充:「只需要一輩子,不用兩輩子。」 身為 iOS 工程師,這輩子只要懂 iOS 就好嗎?看似寫了一輩子 Mac/iOS 的 @zonble,最近卻拿了一張 Google Flutter GDE。來聽聽他對於 Flutter 這項趨勢的看法。 { 完整節目筆記請按我 } 長輩我喜歡你啊! 大家好我是 zonble 販售焦慮,iOS 工程師能不學 Flutter 嗎? Flutter 是什麼?打散重組的瀏覽器 瀏覽器是什麼? 為什麼 Flutter 比瀏覽器還快? 什麼樣的 apps 適合用 Flutter iOS 工程師如何理解 Flutter SwiftUI 與 Flutter 的同與異 先把 UIKit 給忘了 整個 Flutter 就是一顆樹(看這張圖就秒懂:Layouts in Flutter) 用 Web 的方式來思考會比較容易 喬喬的 Flutter 經驗 一定要用 Firebase 嗎? Garbage Collection 因為錄音時垃圾車一直來,weak self 考慮開個副牌叫 Garbage Collection 啦🤣 Google 推出 Flutter 的策略 Google 需要從頭到尾自己掌控的框架 一定要用 Firebase? 成為 GDE 的意義與原因 Flutter 有什麼難搞的地方嗎? 目前是 AndroidX 與 Gradle 組成 Flutter 開發團隊 iOS 與 Android 工程師容易忘記的點 歡樂的時光總是特別短暫 人活活得好好的幹嘛跳出舒適圈 人活活得好好的幹嘛去踩坑 應該不用擔心 Flutter 被 Google 收掉 為未來的節目插旗 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
1:17:10
October 13, 2019
11: 先 build 得起來再說—Project Catalyst 踩坑記錄
身為一個 code 寫得不好但是踩坑很擅長的工程師,13 當然也沒有錯過試玩 WWDC19 的新玩具之一 Project Catalyst。這集我們會聊一下這項技術對於 Apple 的戰略意義,對於開發者的影響,以及怎麼樣初步上手。既然是踩坑,還沒到寫好 app 上架發大財的程度,所以就是聊好玩的囉。 { 完整節目筆記請按我 } 補充前一集的內容 完整筆記請見官網 Project Catalyst 簡史 WWDC18 時發表一項計畫的預覽,內部代號是 Marzipan(一種我沒有吃過的食物)。是用來把 iOS app 移植回 Mac 的方式。他們先做出了 4 個 apps 讓人聞香。 Home Voice Memos Stock News Steve Troughton-Smith,就開始研究 Apple 到底把多少 iOS 上的 framework 搬到 Mac 上。他推出一個工具 Marzipanify。 13 的踩坑經驗 從入門到放棄的 Blahker Safari 13 把 Legacy Extension 給砍了,要支援就要改成用 Safari App Extension。 超好轉的 Ladybug 與 Knil Ladybug 是去接 rdar:// 這個 custom URL scheme 幫你開連結到 Open Radar。Knil 則是一個測試 Universal Links 的工具。 打勾勾的心理陷阱與解決套件相依 UIWebView 不能用喔 Static binary 要重新 build 喔 分成兩個 targets 會簡單得多 IAP 要重新搞 可以 build 起來了,下一步呢? Mac 特有的 UX CocoaPods 小技巧 怎樣的專案適合 Project Catalyst 催化劑的戰略意義 歡樂的時光怎麼少了喬喬 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
55:35
October 6, 2019
10: 喬喬 escaping
本集竟然有人 escape!那我們就順勢來回應與 @escaping 有關的 #weakself挑戰賽吧!為什麼 Swift closure 的 [weak self] 要加中括號呢?weak、unowned 你分得清楚差別嗎?一起來參與挑戰吧。 { 完整節目筆記請按我 } weak self 挑戰賽 小綠的挑戰推文 何謂 escaping、nonescaping closure 何時用 weak、unowned,或是不用 Closure 的行為 搭配服用的程式範例 closure 預設會 capture (strong reference) 外部變數 capture list 會生成一份 copy Escaping 和 Nonescaping function return 後還會發生的叫做 escaping 有機會造成 retain cycle Weak 和 Unowned 的運作原理 Swift 的 reference instance 是個 HeapObject HeapObject weak reference 會為 instance 建立 side table 用來計算數目 Swift Ownership Manifesto Objective-C 的 ARC 功能如果不是因為創立全新語言 Swift 時追求 memory safety,恐怕從來不會出現。有興趣的朋友可以去聽 The Swift Community Podcast Ep.1。 何時用 weak 或是 unowned? closure 生命週期與對象生命周期一致時,使用 unowned weak 有較多記憶體消耗 要了解程式碼裡大家的生命周期啊 挑戰賽小結 closure 會捕捉外部使用的變數,有可能造成 retain cycle weak 和 unowned 有不同的機制與生命週期 沒有 retain cycle 不用 weak / unowned weak 有額外的記憶體與性能消耗(可忽略) 工程師的 escape 最後生還者 Part II 13 最近在玩 Apple Arcade 13 的 Apple #ArcadeReview 連載中 iPad mini 超適合玩 Apple Arcade 的,又輕又快又平💸 歡樂的時光總是過得特別快 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
57:16
September 29, 2019
9: 帶你親臨 iPlayground 現場
這是 iPlayground 特別篇,也是 weak self 首次「出外景」。我們在活動現場,非常幸運地錄到了會眾與 zonble、Nelson、onevcat 三位資深工程師的對答。內容非常精彩,別的地方聽不到喔。 也很感謝在 iPlayground 與我們互動的聽眾朋友。謝謝你們的支持與鼓勵。 { 完整節目筆記請按我 } zonble 一言不合就開講 聊聊輸入法 zonble 勘誤:「有個地方該是 n-gram 我說成 unigram。跟前後文有關的叫做 n-gram」 XPC 補充資料: 那些年,被蘋果 ban 掉的 API by zonble(談隱私) Nelson 漫談 iOS 架構 題目:漫談 iOS 架構:MVC / MVVM / VIPER 與 Redux 共同筆記 投影片 談 MVVM-C 裡的 coordinator Redux 有哪些坑?(有一小段切錯錄音模式了,所以聲音跑錯邊) 補充資料: Notification Queue - KKBOX iOS/Mac OS X 基本開發教材 onevcat 喵神回答網路框架問題 題目:網路之難,難於上青天 共同筆記 投影片 Client 會是 singleton 嗎?Token 放在哪裡? 創建 Networking SDK 的動機是什麼? 對於 iOS 學習路線的建議? 談 Refactoring 與測試 其他 iOS 關注的技術面向 網路框架怎麼加上 retry Dependency 一次有多個 API 請求怎麼做比較好 Access token expiration 補充資料: LINE iOS SDK APIKit 与 JOSE 战斗的日子 - 写给 iOS 开发者的密码学入门手册 (基础) 13 的 Xcode 小提醒 不要直接從 Mac App Store 下載 Xcode,要從這裡 讓舊版 Xcode 能夠開發新版 iOS 裝置的方法 感謝涵宇贊助麥克風 竟然送給我們一支 Blue Yeti,比小雪球高級多啦。這次活動的現場收音就派上了用場。 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
1:15:34
September 26, 2019
8: 平行宇宙工程師
上禮拜明明就是 Apple 發表會,整個 podcast 錄完竟然一句話都沒提到。你們是活在平行宇宙嗎?沒錯,這集我們穿越時空回到「提問箱」的歷史去做節目了。再加上一個小時的錄音上限,就是一個輕鬆愉快的連假。 { 完整節目筆記請按我 } Q1 聲音品質不佳? 我們買了三個小雪球。 Q2 想聽關於架構的事? 資深文件工程師那集有稍微帶到 Q3 Opaque Return Type? 其實這段是在說,有些提問太 opaque 了 Q4 Code Review 時發生的爭執? 目前沒有好的回答 都是修行啊(誤 Q5 CI 實作? 聊了一下三人用過的 CI 服務: Team Foundation Server Jenkins GitLab CI CircleCI Travis CI GitHub Actions App Center Bitrise 其他有提到的東西 Swift source compatibility suite Fastlane Q6 各種打臉 HR 的故事或方法? 喬喬你是在煮心靈雞湯喔? Q7 期待有 Android 話題的 Podcast? 這個問題也是滿可愛的。我們有打算公開做 podcast 的 know-how。 Q8 為何 ViewModel 大多使用 class? 對應到第 1 集的內容 #波肥挑戰賽 結尾:weak self 挑戰賽 快點來我們的提問箱提問吧! 或是在 Twitter 推文時標注 #weakself挑戰賽 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
28:47
September 15, 2019
7: 這集叫罐頭🥫
  趕在 Apple 發表會之前,我們剪了一小段閒聊。 「除了 iOS 以外你們會不會想接觸其他平台?」 「為什麼要突然問這個?」 「這個我知道,這個我知道。因為現在 iPhone 各種不利的謠言,坊間一直流傳,加上 Cook 又在發表會之前賣股票,大家在想 iPhone 是不是快 G 了。那如果 iPhone 有危機呢,身為 iOS 工程師當然連帶有危機~」 請注意,因為時程壓力,本集的聲音比較生肉,也沒有音樂。 { 完整節目筆記請按我 } Hi 大家好我是罐頭 珍奶版 iPhone 藍波哥 Guilherme Rambo 的 Twitter 謠言集散地 https://9to5mac.com 玩膩 iOS 的你會想去做別的事嗎? Swift for Tensorflow 製造焦慮膩 Apple TV 這個詞到底是啥意思 Apple TV HD Apple TV 4K Apple TV app Apple TV+ 假設轉換跑道 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
29:39
September 10, 2019
6: 真・三人・weak self
本集聊了工程師怎樣用 Twitter、以前學習寫程式的經驗、遇過的強者,以及對於至今節目內容的檢討。 雖然我們辦了投票決定是由一三來獨講這一集的節目,錄音時卻發生了意料之外的事情…。 { 完整節目筆記請按我 } 開場獨白 因為聽眾反映我們的聲音不好辨認,我們試著三個人分開錄音。不過,本來說好的分開錄音其實是一人錄一段,結果卻變成… 不是說好我一個人講嗎? 抱歉囉,結果「一三摔到新買的 iPad mini」就不聊了🤪🤪🤪 來做貼紙囉 工程師怎樣用 Twitter 沒空刷推的就來訂閱«13的開發者週報» Tweetbot 支援依照時間順序排列、列表 13 做的擋蓋板廣告開源 app—Blahker 13 整理的台灣 iOS 開發者 Twitter 列表—iOS Developers TW 🇹🇼 沒什麼東西是全新的 第一次寫程式的經驗 真 weak 告白 + 被強者智商碾壓的經驗 泊學 - 一個全端工程師的自學網站 持續學習的工程師職涯 開放式結局 花絮:節目檢討 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
1:15:59
September 1, 2019
5: 這裡沒有心靈雞湯配大餅
受到推友 @GanNaSong 點菜的啟發,加上喬喬憋了很久沒講話,這次錄音一上來就問起 13 為什麼開始做 TDD,聊了軟體開發團隊的現象,就這樣講了 2 個小時😂 剪輯完有 1 小時 + 半小時的 bonus,開頭結尾也懶得錄了。歡迎測試高手來跟我們交流交流。 { 完整節目筆記請按我 } 也來聊 TDD 為什麼 13 開始搞 TDD TDD 跟 unit test 不是同一件事 喬喬入門 TDD 的挫折經驗 寫測試會遇到的幾個問題 團隊為什麼不寫測試 SwiftUI 能算是 UI 的 TDD 嗎? 驗證 UI 的 Snapshot Testing 團隊沒有萬靈丹 組織當中的問題都是溝通問題 追求完美無瑕的 code? 同事之間互相打擾要拉開時空 職業倦怠的解套方式 沒有在意就沒有傷害 Bonus: 給你滿滿的喬喬 本來已經要收尾了結果又繼續聊下去,後面 25 分鐘就當作 bonus 吧! 喬喬反省自己的職涯 Team lead 或團隊領導者的角色 導入敏捷為什麼沒效 享勞健保怎麼會是福利 參考資料 Lynda.com - iOS App Development: Test-Driven Development 工程師幹話 - 技術主管怎樣有效利用時間 TechLead YouTube Channel 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
1:30:06
August 25, 2019
4: 或許我可以把 title 改成資深文件工程師
啊哈,又是一集採訪節目。這次我們找了資深工程師 Nelson 來跟我們聊聊帶團隊的經驗。在開發團隊中,若有建立共用文件的習慣,會逐漸累積成事半功倍的效果,Nelson 他們是怎麼做到累積出 2、30 篇文件,後來又達成什麼效果呢?跟著 weak self 一探究竟吧。 { 完整節目筆記請按我 } 最近在忙什麼 聲音品質的調整 前一集有重新後製並上傳 這集喬喬人在外太空與我們錄音,所以聲音比較特別 波肥的 CocoaPods 研究心得 美團 zsource 開發談 cocoapods-binary,作者現身說法 為什麼叫資深文件工程師 這個 sprint 的工作是寫文件,看著新人手冊、產品架構、功能流程等文件越來越齊全,有種莫名的成就感 XDDD 或許我可以把 title 改成資深文件工程師 :D – @NelsonT 新人 onboarding 會交代哪些事情 KKBOX iOS/Mac OS X 基礎開發教材 Coding Style Objective-C formatter uncrustify App 架構的演進 用 Objective-C 實作 Redux 架構 喬喬沒跑完測試不能 commit? 硬體廠的軟體開發經驗 Pair Programming 你們都怎麼做 Code Review 波肥的 phabricator 經驗分享 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
59:21
August 18, 2019
3: 就是要豪華便當!詹里長 hokila 的技術研討會全攻略
這集邀請到特別來賓 iPlayground 總召—hokila,談談參加技術研討會的一些經驗與心得,以及 iPlayground 想帶給大家的社群氛圍。WWDC 跑 lab 跑到跟 Apple 工程師推坑買東西、日本的筋肉 Swift 是什麼東東,以及 iPlayground 的籌備祕辛,就是要聽 hokila。 ⚠️警告!本集不太適合搭捷運或上班聽,怕你憋笑會內傷。 { 完整節目筆記請按我 } 🤔為什麼叫做 hokila 🇹🇼台灣的 meetup CocoaHeads Taipei,都在 Cardinal Blue 舉辦 出國參加研討會的契機 🇯🇵日本研討會的神奇特色 iOSDC Japan 喜歡用國產 framework 筋肉.swift 在研討會乾杯🍻 🇺🇸WWDC 攻略 公司沒補助的話,自己存 10~15 萬 hokila 去 WWDC 的經驗談 WWDC 攻略(2016) WWDC 19 第一天心得 WWDC 19 第二三天心得 WWDC 19 第四五天心得 🇺🇸WWDC 周邊的研討會 AltConf try! Swift San Jose 研討會交朋友很厲害的道具🍍🍰 🇹🇼iPlayground 籌備祕辛 2018 為什麼叫 iPlayground? iPlayground 2018 影片大集合 Ask the Speaker 強制配對 掀起 Swift 的小裙子面紗 - Pofat:影片、投影片 找很多業界資深工程師來對談的 Panel 為什麼叫詹里長? 感動的事情 2019 更多的國際講者 講題的難度有提高 Chef Food Officer 🍱 便當不會讓大家失望 工商服務一下,搶票由此去 💪其他提升實力的方法 用 Twitter 追蹤知名的開發者 來聽 podcast 訂閱 «13的開發者週報» 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
1:23:36
August 11, 2019
2: Swift API 設計之原來我不會用 protocol
主題延續上一集的 Swift API 設計,進入了 protocol 與 generic 的領域。 { 完整節目筆記請按我 } 前情提要 CJ 同學提出了一個好問題:「Value type 在某些時刻,會存在 heap 中?」波肥寫了一篇 blog 文章來回答。 Protocol 是什麼? Protocol-Oriented Programming in Swift (WWDC 2015) Protocol 也有兩種 Protocol 的 Existentail Container 與其結構 Opaque Result Type POP 要解決什麼問題? Duck Typing 比起繼承,要多愛用 Protocol 組合 標準函式庫裡的 protocols Array 的 Protocol Hierarchy 視覺呈現 (Swift 4.2) Protocol 使用指南 先寫 concrete type 是否有已存在的 protocol 可以 extension 是否可由已存在的 protocol 組合完以成功能 優先考慮 Generic ,最後才是創造一個新的 protocol 一個簡單的用 generic struct 取代 protocol 的例子。 隨堂小測驗 兩者之間有什麼差異? 尾聲 小綠同學討論 forEach 與 for in 歡迎訂閱«13 的開發者週報» 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
37:41
August 4, 2019
1: Swift API 設計之 Value Type 與 Reference Type
波肥想跟我們談談使用 Swift 時,介面設計的想法、觀念與小技巧。因為太長講不完,所以這集先討論 Value Type 與 Reference Type。 { 完整節目筆記請按我 } Swift 這門語言的明確性原則 Modern Swift API Design (WWDC 2019) Swift Modules 官方文件 只 import 一個 class 或 func - NSHipster 大量使用 Value Type 的 Swift 值還是引用? Local Reasoning Stack vs Heap Understanding Swift Performance (WWDC 2016): Heap, Stack and Performance Swift 裡用來管理 heap memory 的資料結構是 doubly linked list 扯題:ABI 穩定 什麼場合要用 class 當你需要 retain count 以及 deinitialization 時 當你需要 shared 資料 (centrally held and shared, singleton) 扯題:struct 可以有 singleton 嗎? 當 identity 不等同於 equality Tagged Pointer 詳解(只適用於 iOS 12 之前的版本。iOS 12 有新的 Tagged Pointer 機制) 假使拿 struct 包 class 扯題:SwiftUI 用的 @propertyWrapper 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
43:12
July 28, 2019
0: 如果你想要浪費一個人的暑假
三個在 iOS 開發圈打滾的台灣工程師,專為 Apple/iOS 開發者而製作的 Podcast。 這一集我們聊了 WWDC 到正式版發表這個期間,要怎麼安排時間跟資源。是要先學新東西,還是先修 bug 咧? { 完整節目筆記請按我 } 先解決相容問題 從 Xcode 正式版連到 iOS beta 版裝置、gist 不要懷疑,就是官方的罷格 Xcode Release Notes iOS Release Notes Xcode 10.1 did not fix the iOS 9 asset catalogs crash problem - Developer Forums 全新的回報機制 Feedback Assistant 使用者裝了 Public Beta 如果能把 emoji 從 Public Beta 拿掉 - @chockenberry 檢查到是 iOS 13 beta 直接不給用 - @chockenberry 從六月開始就沒有睡好覺了 一三最近寫的 NSAttributedStringBuilder WWDC 影片怎麼看比較快 WWDC for macOS - wwdc.io 運用社群的力量 投稿至 iPlayground 2019 推薦幾個 WWDC19 Sessions Xcode 相關:401、412、413 Swift Packages 與 XCFrameworks:408、410、416 Sign In with Apple 相關:706、504 iPadOS 與 SceneDelegate:212 Great Developer Habits 239 更多 weak self 主講人 一三、波肥、喬喬 官網 https://weakself.dev Twitter @weak_self 提問箱
36:38
July 21, 2019
試聽集・節目簡介
weak self 是三個在 iOS 開發圈打滾的台灣工程師,專為 Apple & iOS 開發者而製作的 Podcast。主講人一三、波肥、喬喬。中文名稱是《我很弱,不要把我算進去》🤪 節目內容涵蓋了 iOS 與 Apple 開發圈的新知討論、踩坑經驗、人物採訪、社群活動、職場生活。
01:52
July 21, 2019