<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LuoYe &#187; iphone</title>
	<atom:link href="http://www.luoye.org/blog/tag/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.luoye.org/blog</link>
	<description>又一个 WordPress 博客</description>
	<lastBuildDate>Wed, 11 Jan 2012 05:51:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>基于.NET/C#开发跨平台Windows Phone 7、iPhone及Android应用程序</title>
		<link>http://www.luoye.org/blog/2010/11/netc-windows-phone-7-iphone-android/</link>
		<comments>http://www.luoye.org/blog/2010/11/netc-windows-phone-7-iphone-android/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 02:51:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OTHER]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[windows photo7]]></category>

		<guid isPermaLink="false">http://www.luoye.org/blog/?p=127</guid>
		<description><![CDATA[在近日举办的Modern .NET DDD Conference会议上，Chris Hardy在他的演讲中展示了如何基于.NET/C#，开发面向Windows Phone 7，iPhone及Android三个平台的应用程序，以及其中的注意事项。 首先Chris列举了三个平台上使用的工具及框架等周边环境：   Windows Phone 7 iPhone（MonoTouch） Android（MonoDroid预览版） 操作系统 Windows Mac 跨平台 开发工具 Visual Studio 2010 MonoDevelop VS 2010 / MonoDevelop 设计工具 Expression Blend 4 Interface Builder XML文件 / DroidDraw 开发框架 Silverlight for WP Silverlight 3的超集 Silverlight 3的超集 社区情况 极好 较好 尚早 MonoTouch是Novell公司推出的基于Mono的iOS应用程序开发套件，并可以将应用程序发布至苹果应用程序商店。Mono是一款基于ECMA标准开发的.NET运行环境，使用JIT（Just-in-Time）编译方式来执行IL代码，不过由于iOS设备的限制，MonoTouch使用了AOT（Ahead-of-Time）编译方式，直接将原生代码部署至iOS设备（iPhone，iPhone 4，iPad）上。MonoTouch还提供了一个Linker，它会将SDK及程序代码中真正使用到的部分静态链接至应用程序中，从而削减了应用程序的体积。使用MonoTouch开发出来的应用程序可以在iOS设备上独立运行，这是因为MonoTouch会将一个运行时放入应用程序内部的原因。据Chris称，这会给应用程序的体积带来大约6MB的增长。 使用MonoTouch，.NET/C#程序员可以利用现有的知识进行开发，能够使用反射、泛型、LINQ、Lambda等各种高级的.NET/C#特性。面向原生API的绑定存放在monotouch.dll中的MonoTouch命名空间下，并与CocoaTouch（即用于iOS开发的原生Objective-C框架）的命名空间映射。在绑定时，MonoTouch不是一味地直接暴露出Cocoa Touch的功能，而是在一定程度上将它的API改写为更倾向于.NET程序员的形式。例如UIView的Frame属性为System.Drawing.RectangleF类型，而不是Cocoa Touch中原本使用的CGRect。对于一些如NSArray这样的类型，MonoTouch也在合适的地方将其转化为强类型的数组。在调试方面，MonoTouch使用了Mono的Soft-Debugger，支持在模拟器、真机，甚至通过WIFI进行调试。 MonoDroid是针对Android系统的应用程序开发套件，大体和MonoTouch相同，目前正处在预览发布阶段，只有少量早期预订的用户拿到了SDK。 据Chris称，有了MonoTouch和MonoDroid便可以复用相当部分的代码，包括现有的开源项目，如Json.NET、FlickrNet及XnaTouch。XnaTouch是一款基于MonoTouch的XNA框架实现，简化XBox及WP7上的游戏向iOS上的移植工作。不过在复用时并不能共享二进制文件，而必须针对不同的平台重新编译代码。 [...]]]></description>
			<content:encoded><![CDATA[<p>在近日举办的Modern .NET DDD Conference会议上，Chris Hardy在他的演讲中展示了如何基于.NET/C#，开发面向Windows Phone 7，iPhone及Android三个平台的应用程序，以及其中的注意事项。</p>
<p>首先Chris列举了三个平台上使用的工具及框架等周边环境：</p>
<table border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td> </td>
<td>Windows Phone 7</td>
<td>iPhone（MonoTouch）</td>
<td>Android（MonoDroid预览版）</td>
</tr>
</thead>
<tbody>
<tr>
<th>操作系统</th>
<td>Windows</td>
<td>Mac</td>
<td>跨平台</td>
</tr>
<tr>
<th>开发工具</th>
<td>Visual Studio 2010</td>
<td>MonoDevelop</td>
<td>VS 2010 / MonoDevelop</td>
</tr>
<tr>
<th>设计工具</th>
<td>Expression Blend 4</td>
<td>Interface Builder</td>
<td>XML文件 / DroidDraw</td>
</tr>
<tr>
<th>开发框架</th>
<td>Silverlight for WP</td>
<td>Silverlight 3的超集</td>
<td>Silverlight 3的超集</td>
</tr>
<tr>
<th>社区情况</th>
<td>极好</td>
<td>较好</td>
<td>尚早</td>
</tr>
</tbody>
</table>
<p><a href="http://monotouch.net/"><span id="more-127"></span>MonoTouch</a>是Novell公司推出的基于Mono的iOS应用程序开发套件，并可以将应用程序发布至苹果应用程序商店。Mono是一款基于ECMA标准开发的.NET运行环境，使用JIT（Just-in-Time）编译方式来执行IL代码，不过由于iOS设备的限制，MonoTouch使用了AOT（Ahead-of-Time）编译方式，直接将原生代码部署至iOS设备（iPhone，iPhone 4，iPad）上。MonoTouch还提供了一个Linker，它会将SDK及程序代码中真正使用到的部分静态链接至应用程序中，从而削减了应用程序的体积。使用MonoTouch开发出来的应用程序可以在iOS设备上独立运行，这是因为MonoTouch会将一个运行时放入应用程序内部的原因。据Chris称，这会给应用程序的体积带来大约6MB的增长。</p>
<p>使用MonoTouch，.NET/C#程序员可以利用现有的知识进行开发，能够使用反射、泛型、LINQ、Lambda等各种高级的.NET/C#特性。面向原生API的绑定存放在monotouch.dll中的MonoTouch命名空间下，并与CocoaTouch（即用于iOS开发的原生Objective-C框架）的命名空间映射。在绑定时，MonoTouch不是一味地直接暴露出Cocoa Touch的功能，而是在一定程度上将它的API改写为更倾向于.NET程序员的形式。例如UIView的Frame属性为System.Drawing.RectangleF类型，而不是Cocoa Touch中原本使用的CGRect。对于一些如NSArray这样的类型，MonoTouch也在合适的地方将其转化为强类型的数组。在调试方面，MonoTouch使用了Mono的Soft-Debugger，支持在模拟器、真机，甚至通过WIFI进行调试。</p>
<p><a href="http://monodroid.net/">MonoDroid</a>是针对Android系统的应用程序开发套件，大体和MonoTouch相同，目前正处在预览发布阶段，只有少量早期预订的用户拿到了SDK。</p>
<p>据Chris称，有了MonoTouch和MonoDroid便可以复用相当部分的代码，包括现有的开源项目，如<a href="http://json.codeplex.com/">Json.NET</a>、<a href="http://flickrnet.codeplex.com/">FlickrNet</a>及<a href="http://xnatouch.codeplex.com/">XnaTouch</a>。XnaTouch是一款基于MonoTouch的XNA框架实现，简化XBox及WP7上的游戏向iOS上的移植工作。不过在复用时并不能共享二进制文件，而必须针对不同的平台重新编译代码。</p>
<p>在UI部分，三个平台各有原生的解决方案。除了WP7以外，iPhone和Android分别使用MonoTouch及MonoDroid提供的原生API的C#绑定进行开发。例如，MonoTouch进行UI开发时使用的是iOS标准的应用程序的架构，包括其MVC驱动方式。开发人员可以通过Interface Builder编辑XIB文件，MonoTouch会自动根据XIB的内容在局部类中生成C#代码，所有的outlet，action等元素都会在代码中得到体现。</p>
<p>Chris也提到了其他一些必须针对平台编写特定代码的地方，例如在文件的存储上，MonoTouch和MonoDroid可以直接像本地路径写入数据，而在WP7上则必须使用独立存储：</p>
<pre>    void SaveLocal(string data)
    {
<strong>#if (MonoTouch || MonoDroid)</strong>
        File.WriteAllText(_localPath, data);
<strong>#elif WINDOWS_PHONE</strong>
        using (var appStorage =
            IsolatedStorageFile.GetUserStoreForApplication())
        {
            var file = appStorage.OpenFile(_localPath, FileMode.Create);
            FileExtension.WriteAllText(file, data);
        }
<strong>#endif</strong>
    }</pre>
<p>同理，使用WebClient获取数据时，在MonoTouch及MonoDroid上可以直接调用DownloadFile相关方法来下载文件，而在WP7中，则需要使用OpenRead相关方法处理二进制数据流。</p>
<p>Chris在演讲中演示了一个跨平台的Twitter应用程序的开发过程，您可以在<a href="http://weblogs.asp.net/chrishardy/archive/2010/10/24/slides-from-my-wp7-iphone-and-android-talk-at-ddd8a.aspx">他的博客</a>上访问WP 7和MonoDroid的开发录像，以及完整的幻灯片内容。Chris与他人还合著了一本讲解<a href="http://www.amazon.com/Professional-iPhone-Programming-MonoTouch-Programmer/dp/047063782X">MonoTouch开发的书籍</a>。此外，在国内技术社区也有关于MonoTouch的内容，如<a href="http://blog.zhaojie.me/">老赵</a>在博客上描述了在虚拟机中<a href="http://blog.zhaojie.me/2010/09/how-to-install-mac-os-x-snow-leopard-on-virtualbox.html">安装Mac OSX雪豹操作系统</a>，<a href="http://blog.zhaojie.me/2010/09/develop-ios-app-with-monotouch-in-visual-studio-1.html">以及利用Visual Studio开发MonoTouch应用程序的方式（上</a>、<a href="http://blog.zhaojie.me/2010/09/develop-ios-app-with-monotouch-in-visual-studio-2.html">下</a>）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luoye.org/blog/2010/11/netc-windows-phone-7-iphone-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe终止Flash iPhone应用编译器开发</title>
		<link>http://www.luoye.org/blog/2010/05/adobe-flash-iphone/</link>
		<comments>http://www.luoye.org/blog/2010/05/adobe-flash-iphone/#comments</comments>
		<pubDate>Tue, 25 May 2010 08:40:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[新闻动态]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://127.0.0.1/blog/?p=5</guid>
		<description><![CDATA[去年10月，Adobe宣布Flash Professional CS5将内置iPhone编译器，可以直接将Flash应用编译为iPhone原生软件的.ipa格式，供开发商提交给苹果进入App Store销售。然而就在本月初的iPhone OS 4预览发布会后，苹果向开发者们提供的iPhone SDK 4 Beta版已经对软件开发协议进行了修改，禁止使用任何第三方编译器编译iPhone软件。此举立即引起了Adobe的强烈不满，双方随后开始了激烈的隔空交战。Adobe Flash平台项目经理Mike Chambers日前在博客上发表文章，就Adobe对此事的看法进行了详细的说明。 首先我们来看看苹果新版的iPhone软件开发协议： “应用程序仅能以苹果描述的形式使用SDK中提供的官方API，不能使用或调用任何私有API。应用程序需原生使用Objective-C、C、C++语言编写，或由iPhone OS WebKit引擎执行JavaScript代码。只有以C、C++和Objective-C语言编写的代码可以编译并直接链接到官方API（禁止应用程序通过中间解释程序或兼容层、工具调用官方API）。” Mike Chambers表示，苹果此举除了禁用Flash CS5之外，还将一系列其他技术挡在了App Store门外，包括Unity、Titanium、MonoTouch等。“尽管苹果可能会有选择的强制执行这一标准，但我们相信苹果肯定会对使用Flash CS5开发的应用软件采取强制措施。目前在App Store内销售的使用Flash编译软件超过100款，这些软件的开发商应该做好随时被苹果撤柜的准备。” 目前Adobe CS5已经发布，其中的Flash Professional CS5确实包含了Packager for iPhone编译器功能。不过Mike Chambers表示，Adobe目前已经没有任何继续向这一项目进行投资的计划。 接下来他继续表示了对苹果的不满，称在Flash CS5的整个开发过程中，该编译器功能都完全符合苹果App Store软件开发协议的规定。然而就在CS5正式发布前数日，苹果单方面修改协议让Adobe措手不及。“如果你想要为iPhone平台开发软件，就应该做好他们随时以任何理由修改协议的准备，就像最近他们因为自己有了广告平台而拒绝所有其他广告网络，以及拒绝普利策奖得主的软件一样。” “尽管即将放弃这一计划，但iPhone编译器项目并非完全浪费资源。它证明了两件事： 1. Flash无法在iPhone上运行并无技术上的原因。 2. 开发者完全可以使用Flash在iPhone平台上创造出性能优异，有说服力的内容。” “最终，真正开放式的平台将打败苹果所要创造的这种封闭、禁锢的落后体系。” 在Mike Chambers发表此番言论后不久，苹果公司发言人Trudy Miller面对媒体做出了回应：“确实有人在走回头路：包括HTML5、CSS、JavaScript、H.264这些开放标准都被iPhone、iPad所支持，而Adobe的Flash却是一个封闭的产品。”]]></description>
			<content:encoded><![CDATA[<p>去年10月，Adobe宣布Flash Professional   CS5将内置iPhone编译器，可以直接将Flash应用编译为iPhone原生软件的.ipa格式，供开发商提交给苹果进入App   Store销售。然而就在本月初的iPhone OS 4预览发布会后，苹果向开发者们提供的iPhone SDK 4   Beta版已经对软件开发协议进行了修改，禁止使用任何第三方编译器编译iPhone软件。此举立即引起了Adobe的强烈不满，双方随后开始了激烈的隔空交战。Adobe   Flash平台项目经理Mike Chambers日前在博客上发表文章，就Adobe对此事的看法进行了详细的说明。</p>
<p><span id="more-5"></span></p>
<p>首先我们来看看苹果新版的iPhone软件开发协议：</p>
<p>“应用程序仅能以苹果描述的形式使用SDK中提供的官方API，不能使用或调用任何私有API。应用程序需原生使用Objective-C、C、C++语言编写，或由iPhone   OS   WebKit引擎执行JavaScript代码。只有以C、C++和Objective-C语言编写的代码可以编译并直接链接到官方API（禁止应用程序通过中间解释程序或兼容层、工具调用官方API）。”</p>
<p>Mike Chambers表示，苹果此举除了禁用Flash CS5之外，还将一系列其他技术挡在了App   Store门外，包括Unity、Titanium、MonoTouch等。“尽管苹果可能会有选择的强制执行这一标准，但我们相信苹果肯定会对使用Flash   CS5开发的应用软件采取强制措施。目前在App Store内销售的使用Flash编译软件超过100款，这些软件的开发商应该做好随时被苹果撤柜的准备。”</p>
<p>目前Adobe CS5已经发布，其中的Flash Professional CS5确实包含了Packager for   iPhone编译器功能。不过Mike Chambers表示，Adobe目前已经没有任何继续向这一项目进行投资的计划。</p>
<p>接下来他继续表示了对苹果的不满，称在Flash CS5的整个开发过程中，该编译器功能都完全符合苹果App   Store软件开发协议的规定。然而就在CS5正式发布前数日，苹果单方面修改协议让Adobe措手不及。“如果你想要为iPhone平台开发软件，就应该做好他们随时以任何理由修改协议的准备，就像最近他们因为自己有了广告平台而拒绝所有其他广告网络，以及拒绝普利策奖得主的软件一样。”</p>
<p>“尽管即将放弃这一计划，但iPhone编译器项目并非完全浪费资源。它证明了两件事：</p>
<p>1. Flash无法在iPhone上运行并无技术上的原因。</p>
<p>2. 开发者完全可以使用Flash在iPhone平台上创造出性能优异，有说服力的内容。”</p>
<p>“最终，真正开放式的平台将打败苹果所要创造的这种封闭、禁锢的落后体系。”</p>
<p>在Mike Chambers发表此番言论后不久，苹果公司发言人Trudy   Miller面对媒体做出了回应：“确实有人在走回头路：包括HTML5、CSS、JavaScript、H.264这些开放标准都被iPhone、iPad所支持，而Adobe的Flash却是一个封闭的产品。”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luoye.org/blog/2010/05/adobe-flash-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

