關(guān)于App的一些迷思以及一些動畫效果開源庫的推薦

前言
說來慚愧擎颖,iOS 8 都已經(jīng)發(fā)布半年多了蜀肘,而我最近才開始學(xué)習(xí)iOS 7的一些新特性,才開始去理解 iOS 7 所帶來的一些界面交互的變化磺箕。
一切的源起還是來自 Facebook 在去年發(fā)布的社交奖慌、新聞聚合閱讀應(yīng)用Facebook Paper,當(dāng)然我們在這里討論的不是該應(yīng)用是否達(dá)到了當(dāng)初Facebook發(fā)布它時所定的目標(biāo)松靡,而是在于它那出色的交互設(shè)計(jì)简僧,并從中學(xué)習(xí)到點(diǎn)東西。至于如何出色請見它的宣傳視頻雕欺,同時可以強(qiáng)烈推薦移步到美區(qū) App Store 的 Paper 頁面下載一個把玩下岛马。(什么?沒有美區(qū)賬號阅茶!那就多看幾遍的宣傳視頻吧V朊丁)讓我們來扒扒這一應(yīng)用后面的團(tuán)隊(duì),該應(yīng)用的UI設(shè)計(jì)師是 Mike Matas脸哀,聽到這個名字不要害怕蹦浦,更不要緊張,因?yàn)槲腋阋粯訉λ粺o所知撞蜂,抱著好奇的心態(tài)接著往下扒吧盲镶。他是這樣的一個人:
15 歲高中輟學(xué),加入了 The Omni Group蝌诡。18 歲創(chuàng)立自己的第一個公司 Delicious Monster溉贿。2005 年 WWDC 設(shè)計(jì)作品 Delicious Library 摘得了最佳 Mac OS X 用戶體驗(yàn)第一名和最佳 Mac OS X 產(chǎn)品第二名。19 歲加入蘋果公司浦旱,設(shè)計(jì)了 iPhone 上的 Settings.app, Photos.app, Camera.app, Maps.app 以及電池圖標(biāo)宇色,還有 Mac 上的 Photo Booth 和 Time Machine。2011年夏天創(chuàng)辦他聯(lián)合創(chuàng)辦的 Push Pop Press 被 Facebook 收購了。

然后宣蠕,我們在來看看他創(chuàng)辦的Push Pop Press做了哪些事例隆?他跟美國前總統(tǒng)、2007年諾貝爾和平獎主阿爾·戈?duì)?/a>合作一起開發(fā)了 Our Choice 這個號稱“下一代電子書的典范”的環(huán)保類電子書App抢蚀。Our Choice 有超過400張可互動的圖和表镀层,每一張?jiān)谖淖种械母綀D都能利用手指放大,有一些圖表還可以用手指碰觸其中的圖案或橫條皿曲,然后圖中就會顯示更詳細(xì)的內(nèi)容或解說唱逢。溢美之話不多說,照例放個Vimeo上的宣傳視頻給大家看看屋休,還有這篇《劃時代的愛地球電子書--戈?duì)柕腛ur Choice》坞古。如果你因?yàn)闆]有美區(qū) App Store 賬號而下載不到 Paper 的話,那恭喜你博投,你可以在中國區(qū)的App Store下載到 Our Choice绸贡,RMB 30。如果你還沒有被我的啰嗦所打敗毅哗,或者你已經(jīng)對我啰嗦的話語感到深惡痛絕听怕,那你可以出門左拐到優(yōu)酷看看在 Mike Matas 在 TED 上的《下一代的電子書》演講。
說了這么多廢話之后虑绵,終于可以再回到正題了尿瞭!如果你體驗(yàn)完了Our ChoicePaper 這兩款 App后,你會發(fā)現(xiàn)他們的交互和動畫幾乎如出一轍翅睛。對声搁,他們都是 Kimon Tsinteris 開發(fā)的。那么問題又來了捕发,Kimon Tsinteris 這個又是誰呢疏旨?他是Push Pop Press 的聯(lián)合創(chuàng)始人,曾在蘋果擔(dān)任高級工程師扎酷,并參與了 iPhone 和iPad 上的軟件研發(fā)(iPhone的指南針及地圖)檐涝。2011年,F(xiàn)acebook收購了他的公司法挨,此后他便和 Mike Matas 加入了Facebook負(fù)責(zé)Facebook iOS版本的開發(fā)谁榜。Mike MatasKimon Tsinteris 他們都有一個共同的特點(diǎn),那就是不滿足于蘋果自身動畫框架的單調(diào)凡纳,他們認(rèn)為:
隨著觸屏設(shè)備的不斷發(fā)展窃植,用戶需要更加逼真的動畫形式。對于用戶來說荐糜,如果觸摸屏上的元素可以對其觸摸動作作出反饋巷怜,那么它也應(yīng)該對其觸摸的速率作出反饋葛超。這也將是移動設(shè)備上動畫效果接下來的發(fā)展趨勢。

他們創(chuàng)辦的Push Pop Press 就一直致力于創(chuàng)造一個逼真的延塑、充滿物理效應(yīng)的體驗(yàn)巩掺,伴隨著被Facebook收購后,他們這一理念也就自然而然的帶到了他們所負(fù)責(zé)的產(chǎn)品身上页畦,Paper 就是這樣的一個產(chǎn)物。故事到此當(dāng)然還沒有結(jié)束研儒,他們發(fā)布完P(guān)aper 之后豫缨,更進(jìn)一步將其背后的動畫引擎POP開源了!它目前在Github上有著10250個Star端朵。借助于POP這個動畫引擎好芭,iOS 開發(fā)者將至少有6類動畫效果可以使用了,如果再把自定義功能加進(jìn)去冲呢,那么在眾多開發(fā)者的努力下人機(jī)交互動畫將產(chǎn)生無限多的可能舍败。而這正是Pop引擎背后的工程師所愿意看到的。讓我們來看看 Kimon Tsinteris 本人對這個開源庫的介紹:
今天我們開源了實(shí)現(xiàn)Paper應(yīng)用平滑動畫和轉(zhuǎn)場效果的動畫引擎Pop敬拓。使用動態(tài)動畫(dynamic animations)而不是傳統(tǒng)的靜態(tài)動畫(static animations)邻薯,Pop使常見的滑動(scrolling)、彈跳(bouncing)乘凸、折疊(unfolding)等效果充滿了活力厕诡,也使 Paper給人一種耳目一新的感覺。

手勢交互的革新迎來了新的一輪軟件設(shè)計(jì)的浪潮营勤。人們可以用手指直接操作屏幕上的元素灵嫌,(而不像以前,需要一支筆)葛作,這就降低了交互的間接性(反著說寿羞,就是交互更直接),于是赂蠢,人們又提出更進(jìn)一步的要求:既然觸屏可以得到處理绪穆,那么不同速度的滑屏操作也應(yīng)該得到處理。

當(dāng)我在2010年聯(lián)合創(chuàng)辦Push Pop Press公司的時候客年,我們的目標(biāo)就是要創(chuàng)造一種可行的霞幅、基于物理效果(physics-everywhere)的體驗(yàn)。我們在尋求一種可以使人們非常愉悅量瓜、輕松的使用整個應(yīng)用的解決方案司恳,就像我們使用UIScrollView那樣的順滑。

所以從上面的這些我們可以看到绍傲,他們倡導(dǎo)的是隨著觸屏設(shè)備的不斷發(fā)展扔傅,在我們的項(xiàng)目中應(yīng)該充分的利用觸屏設(shè)備的手勢交互功能耍共,App應(yīng)該對用戶的手勢做一些相應(yīng)地反應(yīng),這些反應(yīng)可以包括滑動的速度猎塞、滑動的方向试读、重力感應(yīng)、用戶晃動手機(jī)的方向等等荠耽,通過這些反應(yīng)來提供給用戶一種愉悅钩骇、輕松的體驗(yàn)。
在 iOS 7 之前铝量,我們看到的大量的App都是通過iOS系統(tǒng)提供的Core Animation framework所支持的傳統(tǒng)的靜態(tài)動畫來實(shí)現(xiàn)一些簡單的線性動畫(linear)倘屹、淡入效果(ease-in)和淡出效果(ease-out)。


iOS系統(tǒng)支持提供的基礎(chǔ)的靜態(tài)動畫

常規(guī)的App界面操作大體是這樣的:用戶點(diǎn)擊界面上的按鈕慢叨,界面通過利用上述的靜態(tài)動畫做出相應(yīng)的反應(yīng)纽匙,比如最常見的 NavigationController中界面切換的“左進(jìn)右出”動畫、模態(tài)視圖的“下進(jìn)下出”動畫拍谐。這些靜態(tài)動畫大部分沒有利用到觸屏設(shè)備的手勢交互功能烛缔。那些不滿足現(xiàn)狀的開發(fā)者們想做出精彩的動態(tài)動畫效果大都花了九牛二虎之力,印象最深的就是看到一些應(yīng)用將模態(tài)視圖的“下進(jìn)下出”動畫硬生生的改成的了NavigationController的“左進(jìn)右出”展示動畫轩拨,然后就經(jīng)常遇到視圖控制器混亂的問題践瓷,這樣的代碼也不利于維護(hù)和修改。當(dāng)然在iOS 7之前蘋果引入了一些方法和類來解決一些問題气嫁,如UIPageViewController類当窗、UICollectionViewController 類,以及addChildViewController:寸宵、removeFromParentViewController崖面、 transitionFromViewController:toViewController: duration:options:animations: completion:等方法。但是梯影,這些還是類的使用還是有著很大的局限性巫员。尤其是addChildViewController:、 removeFromParentViewController甲棍、 transitionFromViewController:toViewController: duration:options:animations: completion: 這幾個方法的重用性幾乎為0简识。
一切的轉(zhuǎn)變發(fā)生在 iOS 7,iOS 7最大的變化就是從 iOS 6 的擬物化換成扁平化感猛。同時七扰,加入了大量的動態(tài)效果。這里貼幾張圖來看看:圖一是在墻紙選取界面多了一個動態(tài)墻紙選項(xiàng)陪白,如果你選擇了動態(tài)墻紙颈走,在主頁面當(dāng)你左右晃動手機(jī)時,墻紙也會跟著動咱士。圖二是在應(yīng)用中立由,你現(xiàn)在可以通過右滑手勢返回到上一級界面轧钓,隨著你的滑動,界面會跟著移動锐膜。圖三是Messages的彈簧效果毕箍。從這些我們可以直觀的看到,從iOS 7開始道盏,蘋果也開始鼓勵使用動態(tài)動畫而柑。


圖一:動態(tài)墻紙?jiān)O(shè)置

圖二:右滑返回上一級界面

圖三:消息應(yīng)用

既然有直觀的,那肯定就會用戶不直觀的東西荷逞。那就是 iOS 7 的SDK(Software Development Kit牺堰,軟件開發(fā)工具包)。
通過 iOS 7 的SDK(真的是罪過颅围,現(xiàn)在都已經(jīng)是iOS 8了,我還在研究iOS 7)我們可以看到這幾個東西:
1恨搓、UIKit Dynamics (UIKit動力學(xué))
UIKit Dynamics是UIKit中一套完整的物理引擎院促。它可以讓我們在程序中對界面元素添加一些行為從而達(dá)到諸如重力、彈簧等現(xiàn)實(shí)中的動作行為斧抱。你只需在引擎中注冊界面元素常拓,并指定好物理行為,其他的事就交給物理引擎去完成了辉浦。
2弄抬、Motion Effects
Motion Effects 可以創(chuàng)建很酷的視差效果,就像我們上面提到的首屏動態(tài)壁紙宪郊。它基于Apple提供的重力加速器提供的數(shù)據(jù)計(jì)算分析掂恕,使我們的界面元素根據(jù)移動設(shè)備的傾斜方向做出相應(yīng)的反應(yīng)。
3弛槐、Custom View Controller Transitions(自定義視圖控制器轉(zhuǎn)場)
它是給出了一套完整的自定義View Controller之間切換效果的方案懊亡,你可以通過它簡單、方便的自定義各種界面切換效果乎串〉暝妫可以輕松的就改變NavigationController中界面切換的“左進(jìn)右出”動畫和模態(tài)視圖的“下進(jìn)下出”動畫。
這就是iOS 7上關(guān)于交互的重大改變叹誉,現(xiàn)在你可以通過有效的利用這些特性開發(fā)出獨(dú)一無二的動畫鸯两,玩出各種各樣的特效,也讓人機(jī)交互動畫產(chǎn)生無限多的可能长豁。
本文的目的不是介紹和講解這些新特性钧唐,所以在此不做任何介紹。
正文
盡管 iOS 7 帶來了如此偉大的特性(請?jiān)试S我用“偉大”來形容)蕉斜,但是遺憾是逾柿,在日常常用的App中你并不容易看到這些變化缀棍,大部分應(yīng)用還是采用著老式的靜態(tài)動畫,即使iOS 8都已經(jīng)推出了大半年机错,即使在網(wǎng)絡(luò)上可以輕松的找到這些新特性的教程爬范,即使你可以看到國外大量的采用這些新特性的應(yīng)用并帶來了全新的交互體驗(yàn)。弱匪。青瀑。。萧诫。斥难。
我覺得可能有以下幾個原因:
1、國內(nèi)很多常用的應(yīng)用都還支持著iOS 6帘饶,甚至是iOS 5哑诊,所以導(dǎo)致他們沒有辦法很快的用上最新的特性;
2及刻、很多公司覺得沒必要在市場反響很好镀裤、有著大量用戶的產(chǎn)品上做這些實(shí)驗(yàn)設(shè)計(jì),即使他們做這些設(shè)計(jì)易如反掌缴饭;
3暑劝、設(shè)計(jì)師、產(chǎn)品經(jīng)理颗搂、工程師對于系統(tǒng)的一些新特性沒有及時的了解担猛、學(xué)習(xí)跟交流,所以會出現(xiàn)不知道系統(tǒng)可以實(shí)現(xiàn)這些效果丢氢,即使是知道了這些特性傅联,但是如何應(yīng)用,如何設(shè)計(jì)動畫又是個頭疼的問題疚察。
對于第2點(diǎn)顯然我們沒有什么能夠做的纺且,但對于第1點(diǎn)跟第3點(diǎn)我覺得我們還是可以做點(diǎn)力所能及的事的。
首先稍浆,對于第1點(diǎn)就是多鼓勵身邊的人將他們的手機(jī)系統(tǒng)升級到最新的系統(tǒng)载碌,這不僅僅是為了能讓開發(fā)者可以更加放心地、更加容易地開發(fā)出優(yōu)秀的App, 同時衅枫,由于系統(tǒng)的更新往往伴隨著舊系統(tǒng)一些bug嫁艇、漏洞的修復(fù),所以也可以讓用戶更加安全弦撩、放心的使用手機(jī)步咪,畢竟手機(jī)現(xiàn)在在我們?nèi)粘I钪械玫匚皇侨绱说闹匾?br> 其次,對于第二點(diǎn)益楼,就是我們今天的重點(diǎn)了(現(xiàn)在才到重點(diǎn)猾漫!你應(yīng)該有種把我殺了的沖動吧5闱纭)。由于最近在負(fù)責(zé)一個新項(xiàng)目悯周,在交互粒督、動畫的效果和實(shí)現(xiàn)上嘗試了很多,看了很多Github上的開源庫禽翼,雖然還不能簡單屠橄、輕松的理解和實(shí)現(xiàn)那些效果,但還是覺得收獲滿滿闰挡。古人云“獨(dú)樂樂锐墙,不如眾樂樂”,所以在此把看到的覺得不錯的、有意思的效果列出來供大家學(xué)習(xí)參考,由于本文不是技術(shù)文章证膨,所以只看效果、只給Github鏈接地址刻盐,不討論具體實(shí)現(xiàn)方式等等。
1劳翰、轉(zhuǎn)場動畫
VCTransitionsLibrary




AnimatedTransitionGallery


ZFDragableModalTransition

GTAppMenuController

ICGTransitionAnimation

CBHazeTransitionViewController

CSStickyHeaderFlowLayout



PinterestAnimator


2、輸入框
RPFloatingPlaceholders

JVFloatLabeledTextField

LTBouncyPlaceholder

3馒疹、加載動畫
PWProgressView

UAProgressView
RJImageLoader


PQFCustomLoaders

4佳簸、下拉動畫
UzysAnimatedGifPullToRefresh

Pull-to-Refresh.Rentals-iOS

CBStoreHouseRefreshControl


5、UITableCell
SWTableViewCell

MGSwipeTableCell





6颖变、視圖展示
MGSpotyViewController

RKCardView


HAPaperViewController

AMLoginViewController(背景模糊生均、加視頻)


VideoCover-iOS-Demo(背景加視頻)

DVOBouncer

UIView-Shake

AMWaveTransition

URBMediaFocusViewController

TwitterBirdAnimationCBZSplashView 效果一樣

RKNotificationHub

SOZOChromoplast

VVBlurPresentation

TinderSimpleSwipeCards

ZLSwipeableView

RGCardViewLayout

AFBlurSegue

BRFlabbyTable


VPRubberMenu

YFCardTransitions

TGLStackedViewController

CXCardView


7、UILabel
LazyFadeInView
RQShineLabel

LTMorphingLabel






8腥刹、UIButton
ZFRippleButton


BFPaperCheckbox

YLLongTapShare

VBFPopFlatButton

9马胧、UINavigationBar
TLYShyNavBar


LTNavigationBar


BLKFlexibleHeightBar


BMYScrollableNavigationBar

最后
如果你看到了這里,那么我真的太感謝你了衔峰!謝謝佩脊!

附錄:
1、Facebook開放動畫引擎Pop垫卤,你也可以打造和Paper一樣酷的應(yīng)用了
2威彰、Introducing Pop, the animation engine behind Paper
3、Facebook Paper背后的動畫引擎Pop介紹(譯文)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末穴肘,一起剝皮案震驚了整個濱河市歇盼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌评抚,老刑警劉巖豹缀,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伯复,死亡現(xiàn)場離奇詭異,居然都是意外死亡邢笙,警方通過查閱死者的電腦和手機(jī)啸如,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸣剪,“玉大人组底,你說我怎么就攤上這事】鸷В” “怎么了债鸡?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長铛纬。 經(jīng)常有香客問我厌均,道長,這世上最難降的妖魔是什么告唆? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任棺弊,我火速辦了婚禮,結(jié)果婚禮上擒悬,老公的妹妹穿的比我還像新娘模她。我一直安慰自己,他們只是感情好懂牧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布侈净。 她就那樣靜靜地躺著,像睡著了一般僧凤。 火紅的嫁衣襯著肌膚如雪畜侦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天躯保,我揣著相機(jī)與錄音旋膳,去河邊找鬼。 笑死途事,一個胖子當(dāng)著我的面吹牛验懊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尸变,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼鲁森,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了振惰?” 一聲冷哼從身側(cè)響起歌溉,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后痛垛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體草慧,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年匙头,在試婚紗的時候發(fā)現(xiàn)自己被綠了漫谷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡蹂析,死狀恐怖舔示,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情电抚,我是刑警寧澤惕稻,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蝙叛,受9級特大地震影響俺祠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜借帘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一蜘渣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肺然,春花似錦蔫缸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至加叁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唇撬,已是汗流浹背它匕。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窖认,地道東北人豫柬。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像扑浸,于是被迫代替她去往敵國和親烧给。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫喝噪、插件础嫡、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,109評論 4 62
  • 從窗外望去,樹上的枝頭,又冒出一丁點(diǎn)兒嫩綠榴鼎,遠(yuǎn)看似一個綠色的葉苞伯诬,就等著再次滋潤一場春雨,就會燦爛地綻放巫财。清...
    馨享事承閱讀 428評論 0 1
  • [滿庭芳]中秋 作者:曉虹 穹拱秋高盗似, 風(fēng)輕兮爽, 欲別西去夕陽平项。 茗茶醇釀赫舒, 宮餅暗飄香。 擺案執(zhí)梾翹首闽瓢, 待宵...
    陳霓裳閱讀 389評論 0 25
  • 打從記事起接癌,我的頭發(fā)總是短短的,最長不超過衣領(lǐng)鸳粉。對于喜歡臭美的女生扔涧,也曾多次懇求媽媽留住我的頭發(fā)(別剪太短),可媽...
    愛如你我閱讀 446評論 1 4