MSDN中文Webcast for Windows Phone


更新了最后的部分“參與的好處” -- Good Friday放假沒事寫博客。-2012年4月6日。

 

之前做了一個MSDN中文Webcast app。當時是為了參加Windows Phone Mango大賽而編寫的,因此設想很多Mango的新功能,后來給炮灰了。第一個版本大概花了10到15天的業余時間進行開發。后來又用了大概2,3周業余時間更新,完成了基本功能。這個app提交了以后一直沒有怎么維護,也沒有做推廣。這里的推廣是指連論壇發貼神馬的,不是指刷榜什么的。如果對app store有了解,中國區好多app都是靠刷榜什么的,國外的app dev聚會的時候一般聊聊創意,開發的問題什么的。國內的app開發者大會,有些演講者直言不諱的說要了解app store的排名算法,花多少錢推廣神馬的。當然國外的app也推廣,而且刷榜這事絕非中國人發明的,但在中國發揮到極致。我當時做這個app是想借參賽的機會學習和大量應用mango的新功能,后來發現還是能幫到別人,也有一些人下載使用的。

 

下載鏈接

http://windowsphone.com/s?appid=7208ef50-a57d-4b11-b5ab-22f228137288

 

給力評價

image

image

image

image

 

程序還沒有在中國區上線。

功能

這個app包含了以下幾個功能

按照系列,講師和產品分類顯示Webcast

screenshot2screenshot4

 

課程簡介功能

screenshot6

 

下載管理功能

由於官方的視頻是zip文件,需要下載解壓才能播放,所以有下載管理的功能。

screenshot5

 

搜索功能

screenshot7

 

收藏功能

screenshot1

 

Live Tile功能

screenshot8

 

基本功能都有了,但是與當初設想的還是缺少了不少功能。

難點

剛開始我覺得做這個app難度不大,我大概在一年多前,Windows Phone剛出來的時候就做了一個播放Windows Phone Webcast的英文app。

免費下載地址 http://www.windowsphone.com/en-AU/apps/ddac45bc-4f3f-e011-854c-00237de2db9e

 

但是在開發這個app的時候還是遇到不少問題,解決這些問題浪費了開發6,70%的時間。這里確實是“浪費”,因為這些工作都不是在做app的關鍵部分,導致了一些設想的功能並沒有完成。導致大量時間浪費主要是如下幾個問題:

后台下載

由於官方的Webcast是通過以zip文件的形式存儲,因此不能直接在線播放,需要下載zip文件到Isolated Storage。后台下載是Mango的新功能,是Background Agent的其中一個,使用后台下載是有些限制的,例如只能最多同時下載5個任務,所以要自己管理下載文件,這個管理流程在程序重啟,墓碑化以后有點麻煩。下載過程中,文件的大小與通信的媒介(WiFi或者3G)都有關聯,代碼編寫的時候還需要避免內存泄漏,因此花了不少時間在編寫穩定的后台下載代碼。

 

解壓

如上所述,視頻是通過zip文件存儲,所以需要解壓才能觀看,因此我也試了好幾個解壓的庫和源代碼,通過大量的測試和修改,最后發現在Windows Phone中SharpZipLib是最好的,但是這個庫在Windows Phone中運行,有時候也會出問題,例如文件大小大於100M的時候。這里浪費的時間比后台下載要多。

 

播放

文件一旦解壓成功,需要進行播放,由於官方的時候歷史悠久,有些視頻的壓縮比率非常高,導致Windows Phone不知道這種視頻的格式。在開發過程中,我反復使用MediaElement,Silverlihgt Media Framework或MediaLuancher來試圖播放所有視頻,最后發現有好多視頻三種方式都無法播放,甚至通過zune軟件傳輸到Windows Phone也不能播放。最后只好放棄對一些視頻的支持,這里浪費的時間還要比解壓功能多很多很多。

 

這些問題不但浪費時間,而且導致這個app不能為用戶提供良好的用戶體驗,例如用戶需要下載等待,下載完畢還需要等待解壓,解壓后有部分視頻還是不能播放(已經屏蔽了一部分,但是沒有完整測試所有不能播放的視頻)。可以說這個app的用戶體驗有一部分是由於官方提供視頻的格式所限制的,如果以后官方提供在線播放功能,這個app的用戶體驗會提高很多。

 

預計實現的功能

由於浪費了6,70%的時間在處理非核心功能上,導致有好些預先設計的功能沒有完成,主要如下:

 

搜索關聯功能

在bing搜索中,如果搜索Webcast相關的,可以直接搜索這個app里面的內容,這是Mango的新功能,好像國內的app很少有這個功能。

 

完善解壓功能

通過后台定時任務自動解壓,不需要用戶等待。可以通過定時任務完成這個功能。

 

完善播放功能

記錄用戶播放進度,可以隨時回到播放的進度中。需要客戶化播放控件。

 

微博分享功能

加入社交功能,用戶互相交流等等。

 

展望

如上所述,有些功能還沒有完成,需要進一步完成上述的功能,同時進行一些功能的完善可以提高app的用戶體驗,所以在未來會考慮如下一些功能:

把主頁面改成Pivot

Panorama是個好控件,但是有時候使用Pivot可能更合適,打算把app改成Pivot控件。

 

完善UI

由於時間倉促,UI基本沒有進行設計,直接把數據通過數據綁定進行顯示,需要完善UI,增加更多的margin,加入一些圖片等等。

 

雲同步功能

通過Azure或者其他雲同步一些設置,更新視頻列表等功能,官方的視頻列表是一個xml文件,而且沒有版本信息,檢查更新的時候需要下載整個xml。導致更新困難,通過雲平台可以方便更新。首選Azure,但也考慮其他平台,例如heroku+nodejs,因為平常工作都熟悉使用Azure,想試試其他平台。

 

支持其他設備

支持iOS,Windows 8,Android,PC等設備,用戶可以通過雲同步各個設備的配置信息,播放進度等等,就像Kindle一樣。由於使用了MVVM,所以移植到Windows 8難度不大,而且我平常也做過不同設備的開發,如果有需要和時間,支持這些設備不是什么問題。

WP_000592WP_000608

 

找幫手

以上還是有不少功能需要完善,我希望找一兩個幫手幫我完成,要求如下:

1. 一到兩個,本人以前也做過一些開源項目,一堆人,最終沒有把事情做出來,精簡人員,一步步不斷迭代。

2. 有充裕的時間,最好是大學在讀的同學,app開始拼創意,后期拼時間,沒有充裕的時間,不能完善一個好app,所以希望有充裕的開發者參與。

3. 熟悉Windows Phone開發,Mango的功能,最好熟悉MVVMLight的開發,由於整個app都是基於MVVMLight編寫,基本零code-behind代碼,所以最好熟悉MVVM,對於沒有基礎的初學者,對不起,暫時不能參與,因為分隔兩地,溝通成本太高,我沒有能力把事情安排的很好。

4. 對Windows Phone開發具有濃厚的興趣,因為沒有報酬的。

5. 願意接受下面的事先說明和合作方式。

 

事先說明:

1. 這里不是找廉價勞工,而是找無酬勞工。沒有任何報酬,我沒有打算通過這個app賺錢,這個app連ad也沒有。這里沒有大餅,入市前請謹慎。

2. 避免以后發生問題,app的總體發展方向由本人決定,本人甚至可以cancel整個app的開發。

3. 避免以后發生問題,如果在合作上有任何問題,本人有權隨時終止合作關系。開發者也隨時可以離開項目,但不能公開源碼。

4. 沒有說明的,一切解釋權歸本人。

 

合作方式:

1. 通過Agile的方式開發,分為BA和Developer,然后通過迭代的方式增量開發,每次迭代2到4周,視乎開發者的時間,如果專注開發,2周時間能做不少功能,上述的app我大概使用了6-8周的晚上時間進行開發,我試過5天晚上的時間做出4個小游戲,在快速開發方面,Windows Phone還是一個不錯的平台。

2. 我將從開發者轉成BA,主要整理故事,如果有必要會解決一些技術問題。雖然現在不是專門做Windows Phone的開發,但是我對這個平台還是很了解,可以挖掘這個平台的最大功能(任何平台都有限制,需要在限制條件發揮到最大的功能)。下面是一些故事的例子:

1) 作為一個用戶,我在Bing搜索中能搜索到Webcast的視頻。

2) 作為一個用戶,下載完畢的視頻可以直接打開觀看。

3) 作為一個用戶,我能直接參看上傳觀看的視頻,保留播放進度。

    參照Agile的方式,一個迭代會完成幾個故事,軟件不斷快速更新,就像當前版本,我當時做1周迭代,現在已經2.0版本了。

3. 快樂編程,平常上班,上課什么都很多苦逼的事,所以不能把這個項目作為負擔來做,高興的時候才專注做,不高興,以后不想做可以隨時離開項目。但我希望要把一個迭代的任務完成了,或者至少完成了一個單獨的故事。

4. 如果有興趣,請加我微薄 @林永堅Jake, 粉我,然后求粉,就可以通過私信溝通。

 

參與的好處 

雖然上述條件苛刻, 為了吸引人參與,下面講述一下參與的好處:

1. 可以把參與部分分享到你的博客,(上面的條件也沒有限制,而且我本人很喜歡分享,每天在微博回答大量問題),只是不能公開全部源代碼,我的目的是想把這個app做好,在我看來,現階段開源不是一種好的方式,如果開源能把這個app做好,我願意開源。我之前也做個好幾個開源,對於這個app我選擇精簡人員,閉源開發。 

2.  如果app做得足夠好,可能放到中國MSDN的官方網站進行推廣,對於參與者找工作什么的可能有幫助,對我就沒什么用的。

3. 可以嘗試很多新技術,mango功能,Async神馬的,我都用上,這是一個試驗場,參與者能把這個app做好,技術上完勝大部分國內的app。

4. 可以把我做app的想法分享出來,Metro什么的,各種設備什么的。

5. 可以體驗Agile開發流程,看過不少博客,很多人對Agile什么都當神膜拜,作為在各個開發流程都做過,主要還是喜歡Agile的做法,逐步完善產品的路程。

6. 在本機功能完善后,做做cloud什么的,Azure什么的對我來說也是拿起就立刻出系統。我試過2天時間把一個surface 2 的app從本地變成Azure版本,所以我可以分享這些想法。

 

寫了上述的對開發者的好處,我也確實在考慮做這個對我自己有什么好處, 好處就是有人幫我把想法實現了,可能讓更多人使用這個app,而且從中受益。什么經濟利益什么的確實沒有。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM