开始转攻iOS平台

随着公司业务结构的调整,自己也开始逐步调整自己的Skill Set。对于Mobile产品的开发,我个人很看好Web App和iOS这2个点,但由于精力和时间的限制,我选择了iOS平台作为我下一步的学习方向。

可能有人觉得现在才学iOS是不是晚了点。呵呵,对于学习来说,没什么早晚的。晚起步不等于落后。好在自己的学习和模仿能力还算可以,相信达到“入门”的状态应该不会花很长时间。后面就随着项目经验的积累,慢慢提升自己了。有项目压力就有动力。我在10天之内,先后看完了“Cocoa and Objective-C Up and Running Foundations of Mac, iPhone, and iPod touch programming”以及“Beginning iPhone4 Development”这两本书,还有一本”The iOS 5 Developer’s Cookbook: Core Concepts and Essential Recipes for iOS Programmers (3rd Edition)“正在从托人从美国带回来。第一本书让我简单了解了下Objective-C的语法结构和Mac OS编程的基本流程。第二本书介绍了一些CocoaTouch的库,以及怎么在iOS设备上使用他们。这两本书应该算是不错的入门书籍。随着书做了些练习,也算稍微找到了点感觉。(还好自己有C++的背景。呵呵。)随着iOS5的发布以及xCode 4.x的正式推出,iOS编程有了比较大的变化,这也是我为什么要买第三本书的原因。虽然通过自己摸索,也知道了些皮毛,但有本书,领着你完整的走一编还是很重要的。

现在我正在准备一个iOS程序的自己编译环境。相信所有做iOS开发的公司都会这么套东西。做这个需要了解iOS编译的流程,配置项,各种参数。同时也要能整合Perforce以及Email系统。也算是个小小的挑战。随后会逐渐的参与到项目的开发中去。

其实自己很早就想有这么一个调整。从原先的知识结构里跳出去。但一直没什么动力。这次总算有了。也算是个好事。

Advertisements

A keynote about Testing Mobile Javascript

A little out-of-date, but still worth reading:)

Keynote for HTTP Live Streaming

HTTP Live Streaming

I spent some time on investigating HLS (HTTP Live Streaming) in the past few days. HLS is quite new to me so I did lots of google and here are what I found:

  • HLS stands for HTTP Live Streaming. This website from Apple gives a very detail introduction on this.
  • HLS is a transfer protocol and it helps secure the transfer process.
  • HLS supports both prerecorded (VOD) content and Live content.
  • HLS supports Adaptive Streaming and also support multiple backup streaming in the playlist (.m3u8 file).
  • HLS does NOT have DRM natively.
  • The implementation of Apple Safari does NOT support DRM. (Check here, item 16)
  • HLS can be secured by AES-128 but it can NOT be considered as DRM b/c WB doesn’t approve it.
  • Apple provides lots of tools to help generate HLS content.
  • Safari (MAC / iOS) has native support for playing HLS by using the Video tag in HTML5.
  • Xbox support HLS and it uses PlayReady as its DRM solution.
  • HLS is supported by lots of Media Server Provider (include Akamai). (Check this article for detail)
  • Widevine doesn’t have a solution for DRM in Safari, and not even on its roadmap.

Most of the items come from Apple’s introduction of HLS web site and What is HLS from StreamingMedia.

Apple provides lots for introduction and tools for HLS but I cannot find anything useful for making Web App for Safari. What I am interested most if how to do the authentication in JavaScript. All sample code provided by Apple is for Native App. I might spend more time one this in the future is I have time.

DRM on iOS

For playing featured content, DRM is necessary if you want to get approved by studios. On iOS, there is not much choice you can make. Widevine is one of them. It provides streaming on iOS application (NOT in browser like Safari). Please note that AES-128 of HLS cannot be considered as DRM solution b/c it’s not approved by studios.

What interests me is Vudu.com provides a Web App for iPad. User can hit the site in iPad Safari and streaming the content directly inside the browser. No plugin is needed and no 3rd part application is required for installation. I tried to figure what’s the DRM solution Vudu is using but failed:) I hope HLS AES-128 is not the only encryption they use.

[UPDATE 2012-2-13]

I just saw Prasanna Ganesan’s (CTO of Vudu) answer to my question about Vudu’s DRM in Quora that Vudu uses HLS + AES128.

VUDU uses HTTP Live Streaming with AES-128 encryption combined with additional layers of validation to authenticate the device being streamed to.

Join multiple SWF files into one with AIR for iOS — FlashRealtime.com

The article below shows us a way to join multiple Flash SWF file into one for the use in iOS. In one of my project, we write code tends to work on different platform. But we cannot make it work for iOS b/c we separate the whole project into modules. The way provided by Tom Krcha might give us some help.

HOWTO: Join multiple SWF files into one with AIR for iOS — FlashRealtime.com.