微博mini for Windows Phone 8 開發那些事

來源:互聯網
上載者:User

緣由

為什麼要做這款軟體(下文簡稱mini微博)呢?其實是一直有那麼一個想法,後來直到某次內部技術分享的時候,老大問大家在這段比較閑的時間內有沒有點什麼想法。有人提到想要做一些比較炫一點的東西,當時正值music+誕生,於是就冒出做精簡版微博的想法,也在後來的空閑時間中開始著手開發,一直弄弄,直到現在的版本。功能基本上已經全了,也不準備添加新的功能。

mini微博追求是跟隨系統一致的使用者體驗,目標是提供比系統人脈中的微博更好的使用者體驗,只有黑和白兩套系統主題,個人偏向於白色主題(需要將系統主題設定為Light)。

特色如下:

1. 訊息中心,查看各種訊息更加方便

2.微博廣場,無聊時看看大家在幹什麼

3.瀏覽、發送多圖

4.瀏覽分組微博,發送微博到指定分組

不要問我這款軟體跟官方用戶端有什麼區別,都是自己的孩子,相煎何太急。

可以看下 @陳驍  童鞋錄製的視頻,感謝他在百忙之中抽空錄製的視頻。

 

 

為什麼不做WP7.x的版本?

其實在著手開發mini微博的時候,一開始建立的項目就是7.1的專案檔,也開發了一個簡單的版本,包含精簡版微博必備功能(主資訊流、訊息中心、分組微博、搜尋功能、發布評論轉寄功能)。運行效果稍微比官方微部落格戶端流暢些,但體驗確實沒有想象中那麼好,官方微部落格戶端做了大量的最佳化工作,在一些低端的機器上也有不錯的使用者體驗,贊一個。

自從買了920之後,就有放棄開發7.x版本的想法了,將代碼遷移到wp8部署到920後,發現使用者體驗跟在HD7上完全是天壤之別,於是就更加堅定不做7.x版本的想法。(7.x的使用者勿怪,你們可以使用官方微部落格戶端,體驗也是相當不錯的)

 

產品經理?UI資源?

程式猿翻身做產品,自己的東西自己說了算,再也不用忍受產品的無理要求? 別當真,只是說說而已。

微博mini就我一人開發,什麼都自己說了算,嗯,在開發的時候怎麼簡單怎麼做,這種感覺真的很不錯。

Windows Phone的產品經理一般都是從Android和iOS上轉來的,他們對Android和iOS的設計理念已經有一定的思維定勢,所以你可以發現在Windows Phone Store裡面居然能找到跟iOS長的一模一樣的應用。

稍微吐槽下,有時候,產品經理的設計還不如一線的開發人員,程式猿常年與各種應用打交道,對Windows Phone應用設計有更多的想法和體會,所以有些時候看到不合理的設計時要據理力爭反抗下。豆瓣上看到的一篇有意思的我們都討厭產品經理,其實產品經理也挺不容易,在團隊中要面對各種角色的仇恨,開發、測試、UI,我就不繼續拉仇恨了。

關於UI資源,微博mini中借鑒了官方用戶端中優秀的頁面配置以及使用了一些圖片資源,更多的是來自 Modern UI Icons 的表徵圖和向量圖形。當然我也使用了Expression Design。

這裡介紹一些我常用的UI資源 : easyicon 、loveui、mobile-pattern、fanggeben 、dribbble、花瓣

 

一些開發體會

1、"幹掉"Appbar
ApplicationBar是獨立於三界之外的怪物,不能像UIElement一樣做綁定(雖然有第三方實現),而且Buttons、Menus在Insert新項時各種問題。

對於微博這類資訊瀏覽的應用來講,下面放一排Appbar總覺得佔用頁面空間,所以在mini微博中你很少看到Appbar,不要奇怪,因為作者很討厭它。

我選擇的替代方式是ios、android上的PathMenu,參考了js的radial menu實現方式,有興趣的懂JS的朋友可以看下源碼,實現起來其實不難。當然也有朋友在windows phone上實現了類似的效果並開源了:Awesome Menu

2、善用CustomMessageBox,少做頁面跳轉

在wp7.x後時代,微軟的官方Toolkit中增加了CustomMessageBox,我實在是太喜歡這個控制項了(雖然有一些已知的bug),也在微博mini中大量使用。 行動裝置 App應該讓使用者做最少的操作去完成一項任務。

3、使用WebBrowser作為大圖查看器

4、使用async類庫,可以在wp7、wp8、winrt之間共用代碼

5、網路請求使用壓縮(gzip壓縮大約為之前的六分之一)
網路請求如果伺服器支援壓縮傳輸,那麼我們用戶端需要用壓縮請求,可以使用SharpGIS.GZipWebClient

6、多使用系統佈景主題資源,如PhoneForegroundBrush

7、使用ProgressIndicator作為網路請求提示或長任務進度提示
曾經寫過部落格介紹了一個ProgressIndicator協助類 這也是mini微博中所有進度提示所使用的技術了。

8、使用LongListSelector替代ListBox

LongListSelector的虛擬化做得比ListBox好一些,而且滑動也更為流暢些。可以稍微封裝下LongListSelector變為一個滑動到底部自動載入的控制項。

9、網路請求用HttpClient

10、編寫簡單優雅的代碼

有些程式猿有時為了快速實現一個功能,隨意編寫大量代碼,然後運行一下能跑通了,於是繼續實現下一個功能,再來大量代碼。於是當所有功能完成後,他想著要重構,卻發現無從下手。在編寫代碼的時候需要避免這樣的習慣,我的做法是將功能分塊,然後逐個實現,每實現一個功能都會進行不同程度的代碼重構與Review,這樣儘早將代碼梳理,在後期編寫類似功能的時候,前面的代碼就不需要大量改動而能複用。

11、合理使用轉場動畫

曾經內部技術分享的時候分享過一次動畫專題,也將動畫效果運用到了實際的應用中(music+),在應用中增加一些轉場動畫會讓你的應用看起來更加流暢,更能讓使用者喜歡。當然在mini微博中使用了系統郵件發送成功後的動畫。

 

後記

由於很多客觀原因導致程式不能上傳到微軟市場,請大家見諒(嗯,我一開始就沒打算上傳到市場,自己夠用就行了),只能部分可以部署xap包的wp8手機才能用。

一些伸手黨也不要留言說:”能不能把原始碼發我一份?“, ”求開源“之類的話….

寫本文的目的僅僅是分享自己開發mini微博時的一些體會,給Windows Phone開發人員一點啟示,希望WP開發人員能開發出更多優質的應用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.