iOS開發月報#12|201906

這裏記錄過去一個月,我看到的值得分享的內容,包含但不限於iOS知識,每月的最後一天發佈。 歡迎推薦內容,能夠前往zhangferry/iOSMonthlyReport提交issue。 ios

Tips

閃光動畫

圖片上的閃光動畫,相似這種效果: git

分析拆解可知這是一個帶透明的白色漸變移動產生的效果。漸變+移動,咱們可使用 CAGradientLayer + CABasicAnimation實現:

func showGradientAnimation() {
    let gradient = CAGradientLayer()
    gradient.frame = canvasView.bounds
    //左上角到右下角的漸變
    gradient.startPoint = CGPoint(x: 0, y: 0)
    gradient.endPoint = CGPoint(x: 1, y: 1)
    gradient.locations = [0.0, 0.0, 0.0]
    //調透明度漸變要使用白色
    gradient.colors = [UIColor.init(white: 1, alpha: 0.0).cgColor,
                           UIColor.init(white: 1, alpha: 0.3).cgColor,
                           UIColor.init(white: 1, alpha: 0.0).cgColor]
    
    canvasView.layer.addSublayer(gradient)

    let animation = CABasicAnimation.init(keyPath: "locations")
    //從0位置開始從1位置結束
    animation.fromValue = [0, 0, 0.3]
    animation.toValue = [0.7, 1, 1]
    animation.duration = gradientAnimationDuration
    animation.repeatCount = 1
    animation.isRemovedOnCompletion = true
    gradient.add(animation, forKey: nil)
}
複製代碼

集成Universal Links時的幾點注意事項

這個是onlink總結對於各個平臺對應用間跳轉的支持狀況,其中deeplink指Universal Links: github

跳轉至facebook指定頁面

若是是facebook某一主頁,能夠經過:編程

//這裏能夠替換成本身的主頁id
let url = URL(string: "fb://page?id=**")! 
UIApplication.shared.open(url, options: [:], completionHandler: nil)
複製代碼

這是使用了app scheme的方式進行跳轉的,要求本機安裝了facebook才能跳轉成功。canvas

若是是跳轉到某一個主頁的某一個帖子,能夠經過:swift

//這裏替換成固定的帖子連接
let url = URL(string: "https://www.facebook.com/**/posts/**")! 
UIApplication.shared.open(url, options: [:], completionHandler: nil)
複製代碼

這是經過Universal Links方式跳轉的,該連接能夠經過蘋果的驗證。若是未安裝應用會跳轉到網頁端,若是安裝了就直接跳到指定頁面。瀏覽器

那正常來講,facebook主頁也應該能夠經過支持deep link的https連接跳轉纔對,但實際測試來看是不行的。因此若是要加上是否安裝的邏輯的話,就是:app

let url = URL(string: kFacebookHomePageSchemeUrl)!
if UIApplication.shared.canOpenURL(url) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)   
} else {
    UIApplication.shared.open(URL(string: kFacebookHomePageUrl)!, options: [:], completionHandler: nil)
}
複製代碼

測試:

推薦:將鏈接複製到便籤,郵件,短信,或者使用二維碼的形式使用。框架

不要將連接粘貼到 Safari 中 - iOS 目前阻止從任何瀏覽器的地址欄進行深度連接。工具

驗證apple-app-site-association的鏈接,能夠蘋果的驗證工具

lottie動畫效果在安卓和網頁端正常在iOS端不正常

在一次使用lottie調用設計提供的動畫時,該動畫是一個放煙花,而後散開的動畫。用網頁預覽能夠完美展現效果,可是放到客戶端運行時,卻只展現一部分即煙花上飛過程,而沒有散開效果。最後仔細查看文檔,找到這個:

經設計確認,煙花綻開的效果使用了AE中的 Repeater(中繼器)控件,而該控件在lottie的3.0版本還不支持,可是在2.5.2版本是支持的,回退版本至2.5.2解決了動畫確認問題。

PS:一些古怪問題,第一反應要從官網文檔說明、Issues、QA中找答案

幾個產品相關概念

ROI(return on investment):投資回報率 反應產品的盈利狀況,用百分比表示。 市場營銷、運營活動,都是企業獲利爲出發點,經過利潤/投資量化目標。利潤的計算涉及財務,不少時候用更簡單的收入做分子。當運營活動的ROI大於1,說明這個活動是成功的,能賺錢。 ecpm(effective cost per mille):每千次展現能夠得到的廣告收入 這是廣告主預估自身收益的指標。 arpu(Average Revenue Per User):每用戶平均收入 ARPU注重的是一個時間段內運營商從每一個用戶所獲得的利潤。很明顯,高端的用戶越多,ARPU越高。 LTV(life time value):生命週期總價值 意爲客戶終生價值,是公司從用戶全部的互動中所獲得的所有經濟收益的總和。

推薦閱讀

23 位開發者告訴你此次 WWDC 最讓他們興奮的新事物

對23位iOS開發者的採訪,一塊兒來看下他們眼中這屆WWDC什麼最讓人興奮。

免費領取小專欄 -- WWDC2019 內參

6月份的WWDC給咱們開發者帶來了不少東西,Dark Mode、Swift UI、Combine、iPad OS等等。也是我感受近幾年WWDC乾貨最多的一界了。乾貨太多不知道怎麼學習怎麼辦?這裏沒故事的卓同窗分享的WWDC2019 內參免費領取名額。能夠看各位大佬對WWDC的最新解讀分析,目前二十多天裏已經更新了30篇文章!。

SwiftUI 的一些初步探索 (一)

這是一篇解讀SwiftUI的文章,目前還有第二篇。而喵神也在計劃寫一本關於SwiftUICombine 的書籍

我已經計劃寫一本關於 SwiftUI 和 Combine 編程的書籍,但願能經過一些實踐案例幫助您快速上手 SwiftUI 及 Combine 響應式編程框架,掌握下一代客戶端 UI 開發技術。如今這本書已經開始預售,預計能在 10 月左右完成。若是您對此有興趣,能夠查看 ObjC 中國的產品頁面瞭解詳情及購買。十分感謝!

我發現喵神總能一下找到做爲新概念最應該注意的問題,好比SwiftUI和Swift5.1的關係,爲何須要新系統才能預覽以及ViewBuilder裏接受那些條件語句等。想了解SwiftUI 這篇文章真是必讀

Github

About-SwiftUI

WWDC當天開始創建的一個專門收集SwiftUI資料的倉庫,應該是史上最全了。果真你們仍是最愛SwiftUI!

MovieSwiftUI

使用 SwiftUI & Combine和MovieDB API實現的一款應用。 Talk is cheap, show me the code. 結合實踐是最快速的瞭解一個概念的方式。這也是最近一段時間上升最快的SwiftUI&Combine相關倉庫了。

CombineSwiftPlayground

一個幫助理解Combine概念的 Swift Playground。對於首次接觸響應式編程的人來講具體事例是幫助理解概念很好的方式。

該Playgrounds要求Xcode11 beta2及以上版本才能查看。

rxswift-to-combine-cheatsheet

列舉了CombineRxSwift之間的差異和一些概念上的對比,對於有一點RxSwift概念的人來講能夠快速的理解Combine,也是對於想從RxSwift遷移至Combine的一份參考。

文摘

普通選民也開始意識到,民主機制已經再也不可以爲他們帶來權力。世界正在變化,但他們摸不清變化的方式和緣由。權力正在轉移,但選民不知道權力去了哪兒。在英國選民的想象中,權力被歐盟奪走了,因此他們投票脫歐。而在美國選民的想象中,是既得利益者壟斷了權力,因此他們支持反體制的候選人,好比伯尼·桑德斯和唐納德·特朗普。但可悲的事實是,沒有人知道全部的權力去了哪兒。就算英國離開歐盟、特朗普接掌白宮,權力也毫不會回到普通選民身上。 --將來簡史

月度小結

關於WWDC

WWDC發佈的信息裏面最讓我感興趣的就是SwiftUICombine,目前從Github的活躍狀況來看也是這兩個技術相關倉虧最多。SwiftUI解決了寫UI佈局的痛點,而Combine的出現代表了蘋果對響應式編程的承認,對於我這種使用了一年RxSwift的人來講簡直是一種福音。還有一點是這兩個大招都是對Swift的支持,這是一個很明顯的信號:Swift已經很成熟了,很強大了,之後還會有更多更好的優化。

過去幾年,你能夠忽視 Swift,可是,將來幾年,若是不擁抱 Swift,將沒法緊跟着 Apple 生態圈。

關於生活

從上個月開始有規律的進行跑步,上個月跑步里程是60km,這個月是70km,距年初定的目標已經完成了56%。 跑步帶來的一個好處是最近一段時間的睡眠質量有顯著提升,睡得更香了。若是你有睡眠質量問題,能夠考慮跑步這個方式嘗試解決哦。

封面圖來自於在公司園區跑道上的拍攝。

相關文章
相關標籤/搜索