app變身系統

我不懂,這麼簡單又看起來很厲害的一個招式怎麼沒有流行起來。
步驟如下:
  1. 要變身的app叫做app A,利用url schema觸發
  2. 觸發的來源可以是其他app 或者web
  3. app A收到url schema後打開變身flag,改變rootview
  4. 同上,也可以這樣作,app A收到url schema後從裡面的參數知道是哪個來源,給使用者一些獎勵,可以是coupon或者遊戲幣
實際操作起來會像這樣:
情境一:特別節日,使用者點下業者給的連結,會打開app A,看到那個節日才有的佈景主題,或者收到app提供的coupon,時間過了就消失
情境二:app A平常用得好好的,在打開app A的狀況下,在app B 輸入認證,成功後會跳到app A,開始使用兩個app合作提供的功能
情境三 :觸發url schema,進入app A,什麼事都沒發生,但是在後台紀錄點了那個url schema的使用者有哪些,可以帶更多參數,來作廣告追蹤。
這些招式我除了第一個沒用過外,後面兩個都在某些app裡實作過。
第一個情境明明就是看起來最厲害的,app會變身耶,為什麼最少看到,我不懂啊!!!!

開始作乾濕分離

其實已經持續一段時間了,只是最近才開始面對。
一直以來Art都很喜歡推出看起來很厲害的UI,有很多PM+其他team的朋友+路人+隔壁啊罵,看到其他對手,不管是競業還是異業,都會問一句:「我們可不可以改UI」。

以前在接案公司的時候,我甚至還會鼓勵Art PM設計一些希奇古怪的畫面讓我去實作,我以前都覺得刻那些奇怪的效果很好玩。現在也是。

參與過一些多人合作開發時間很長的案子以後才發現,一樣是加新功能or改UI,在一個只有10個頁面的案子中加跟在一個40個頁面的案子裡加,要花的時間是完全不能比的。(雖然聽起來很像是常識,不過真的是痛過才知道QQ)

以我最慘痛的經驗來說,當時負責的是要把一個tableView上面的item從大雜燴一個section變成分好幾個section分類,我當時接到的時候想說,「這個功能應該兩天就作完了吧,改不好今天下班前就可以做好」。

事實上我做了三個禮拜才把它完成,忽略了80%以上沒看到的data handler,幾乎是改寫了底層2 3000行code,而且後續還有很多沒想到的bug,全部解完加起來時間就差不多一個月了。唉,嚴重的時程規劃錯誤。

會發生這種問題,是因為我只看到UI要處理的問題,沒有想到data +api那邊要處理的問題,甚至沒想到兩邊都改變的時候會不會扯出更多問題。

一開始我在寫code的時候,都是用別人寫好的api module,MVC全部寫在一起,後來想到這樣很難reuse,才漸漸的把一些data + api hadler另外寫,有些壞習慣沒有清除乾淨,現在寫prototype的時候一直出現。


晚上看到facebook 最近出的paper,還有長久持續以來的希奇古怪UI 設計,像是Evernote、Yahoo Weather,來自UI的挑戰一定只會更多不會更少。 所以問題就變成:怎麼樣讓每次改UI的時候不那麼痛苦 我也很想知道答案,這些是我大致想到的:
  1. UI 跟data handler要分得乾淨
  2. 用寫SDK的心情來寫data manager
  3. 盡量不要用storyboard,要用也不要在 storyboard上面疊床架構
有道是「過早最佳化是罪惡的淵藪」,第一招UI 跟data handler要分得乾淨是一直都知道但是一直沒作完整的,壞習慣再不清除乾淨以後一定會要人命。

所以要用寫SDK的心情來寫data manager,我心中一直有一個期望,有一天我可以把我負責app的SDK放出去,裡面只有connect跟disconnect兩個method,其他的UI層都不用管,只要呼叫跟釋放就可以用了,剩下的時間,可以讓想接我SDK的人自由發揮其他怪招式,要讓更多人用我SDK的前提一定是要寫得夠簡單。所以這點也是個自我期許。

剩下的是單論UI部分,刻UI是每個client從業人員一定會遇到的課題,不管是web、iOS、Android還是Windows,基本功一定是刻UI,就iOS來說,在創建一個UI的時候,有三種方式:用code寫、xib或storyboard。storyboard在頁面很少功能不多的時候是神兵利器,但是隨著案子慢慢變大,就會發現越來越多的功能需要用xib或code才做得到,再繼續用storyboard只是會越難維護而已,這個時間點因案子跟個人忍受度而異,不過最晚應該不會超過app裡有超過10個view controller才是。


之前在RayWenderlich上面的文章,爭論這三種作法的利弊。
storyboard 的強項是清楚顯示view controller之間的關係,至於view controller裡面的客製化,還是交給xib或直接用code寫吧。


不用logdown的幾個理由

最近logdown很紅,附近有在寫部落格的朋友幾乎都跑去logdown了,
我也申請了一個domain,在 http://end.logdown.com/

之前把blogspot的文章都匯進去,的確排版變好看,寫新聞張的時候也很簡單,很直覺很好用。

但是這些我需要的功能都沒有,像是:

  • 文章瀏覽數,造訪人數追蹤
  • widget
  • 側邊欄展開/縮小 整個月的文章
這幾點解決的話應該就會跳過去了

Rayark Live Concert 2013

前陣子去了雷亞今年的音樂會,去年不是很期待遊戲app的演唱會,只有在家裡看轉播,看了才發現超有趣的阿。今年完全不用想,剛發售就買下去啦~



今年跟巴哈姆特合作轉播,最高1080P,如果看過去年的錄影就可以發現演唱會品質大幅。

站在一個玩家的角度

當然是要現場聽過一次、回家以後再看好幾次阿,像我現在就是邊看replay邊打網誌。一邊看一邊回想起當天的心情,真是享受。遊戲裡面歌那麼多,我也不是每首都喜歡,大概只有4~8首是很期待聽現場的,當然如果能再聽到remix就更好了。看到平常遊戲裡面的音樂一首一首出現,看到編曲者or演唱者本人,大部分的想法是:「原來他就是作者喔」,然後就會重新想起遊戲畫面,腦海中自動出現手指在滑滑滑。當然有幾個會出現「甚麼,他竟然是作者」這種驚訝,不過聽到歌以後就無感了。

演唱會把音樂遊戲的黏滯性又更提升了。回家以後,把遊戲當作原聲帶播放器一樣,重聽了大部分的歌,也才發現有很多樂師在今年的音樂會還沒出現,明年或許吧?

站在一個app開發者的角度

我不是要講程式寫得不好,怎麼破解cytus和deemo的IAP之類的。那不是重點,身為一個app開發者,也接觸了很多跟我一樣的開發者,大家都知道一款app要獲利,比例小到要哭出來,我記得好像是2%還是5%,不過同時也要知道有6成以上的app都是不再更新被開發者放棄了。

在做app的時候,不,應該是說在設計任何東西的時候,都必須讓使用者跟現實生活做連結,如果我們只有想到在螢幕範圍內的應用,那其實是個失敗的app。我覺得我去的不只是一場音樂會,而是一個app走出螢幕外,連結現實生活的一個優良範例。

接下來

我在玩cytus的時候,一直覺得很可惜的是這遊戲的社群互動太少了,只有分享分數到facebok或twitter的功能而已。應該要做個對戰或者排行榜之類的。IAP也還蠻佛心的,只有做買歌的功能,沒有做買特殊背景,特殊音色的選項。

之前也做過兩個音樂遊戲app,也蒐集了市面上大部分音樂遊戲的資料來發想。當時我就覺得cytus應該會出一個鋼琴或交響樂的章節,沒想到後來變成另一個遊戲Deemo ,我想應該是因為cytus的玩法跟鋼琴完全不一樣的關係,交響樂的話其實就還蠻適合放在cytus裡面的,如果是電子或金屬的話那還是不要放的好。

在音樂會的中間有播放cytus 5.0,還有另一個交響樂遊戲的預告。還蠻期待的,雷亞最近推出的作品,很多細節都處理得很精緻,不會躁進的推出,要寫一個新作品很容易、要一直推出讓玩家驚豔的作品很難。看到這等級的預告,等新遊戲出來一定會支持的。