IOS开发的新选择(JAVA,C#)
2014-12-15 13:56
525 查看
就开发IOS程序来讲,几乎所有的语言的都可以开发,在面向对象模式上用的最多的是桥接模式,而且都可以桥接成原生模式,当然还有基于HTML5方案,笔记不看好此混合方式。一次性编译的语言主要有XPOWER++等,但是都是收费的,而且社区不火,因为毕竟你看到的资料都是Obj-C的资料,最后成了习惯的问题。我喜欢高效的IDE,展开想象的开发系统或者企业应用系统。(不涉及到底层,底层人员WINDOWS,MAC都是垃圾,因为只有unix+gnu最亲切了)。
高效开发需要IDE和最优秀的高效的语言。IOS主要有MONOTouch。JAVA有什么呢?
毕竟某种意义上讲,和JAVA/C#相比,OBJ-C是低效的。而最新的Swift语言高效了些,但是语言是个什么东西,四不像的语言,如果你从零学起可以考虑学习Swift语言,开发工具XCODE6。
以下部分是转载。
官方地址: http://www.robovm.com/
自从使用Objective C开发原生的iOS应用以来,就有许多使用别的语言来开发iOS应用的替选方案。比如说,下面就列出了一些:
PhoneGap, 使用HTML/JS来开发
RubyMotion,使用Ruby
ionic,使用AngularJS开发
我最近发现的一个的是RoboVM,你可以通过它来用Java开发iOS程序。本文将介绍一下如何使用RoboVM和Java来开发一个简单的应用。
下面是一些前期准备:
OSX 10.9.3
JDK 1.7
Eclipse Kepler 4.3
Xcode 5.1.1
首先,给eclipse安装一个RoboVM插件,在帮助——安装新的软件底下, http://download.robovm.org/eclipse/。这需要重启下IDE.
插件安装完之后,现在可以创建一个新的工程了。选择"RoboVM iOS Project"选项。
工程名,主类,应用名,应用ID都填成HelloWorld。正如下面截图所示的那样。
不知道什么原因,当我使用向导的时候,主类没有生成成功,只能手动做了。因此创建一个HelloWorld的类。
把下面内容粘贴到HelloWorld类里面。
import org.robovm.apple.foundation.NSAutoreleasePool;
import org.robovm.apple.foundation.NSDictionary;
import org.robovm.apple.foundation.NSString;
import org.robovm.apple.uikit.UIApplication;
import org.robovm.apple.uikit.UIApplicationDelegateAdapter;
public class HelloWorld extends UIApplicationDelegateAdapter {
@Override
public boolean didFinishLaunching(UIApplication application,
NSDictionary<NSString, ?> launchOptions) {
return true;
}
public static void main(String[] args) {
NSAutoreleasePool pool = new NSAutoreleasePool();
UIApplication.main(args, null, HelloWorld.class);
pool.close();
}
}
这里我们继承了UIApplicationDelegateAdapter类,它是RoboVM版的UIApplicationDelegate。类里面有个main方法,它是用来启动应用的。
现在我们要做的就是重写下didFinishLaunching方法来生成一个UIWindow以及UILabel。将下面的代码放到方法里就可以了。
@Override
public boolean didFinishLaunching(UIApplication application,
NSDictionary<NSString, ?> launchOptions) {
UIWindow window = new UIWindow(UIScreen.getMainScreen().getBounds());
UILabel label = new UILabel(new CGRect(50, 50, 100, 50));
label.setText("Hello World");
window.addSubview(label);
window.setBackgroundColor(UIColor.colorGreen());
window.makeKeyAndVisible();
return true;
}
述的大部分代码都是自解释型的。CGRect的构造参数就是x,y坐标以及标签的长和宽。
如果你在工程上点击右键,并选择作为一个iOS模拟器应用来运行。你会看到弹出一个iOS模拟器,上面是绿屏并显示有文字,“Hello World"。就如下面的截图那样。
如果你到了这步了,这意味着你的环境已经设置好了,可以开始使用Java来开发iOS程序了。
下面是一些参考资料。希望本文能对你使用Java来进行iOS开发有所帮助。
本文的源代码
RoboVM
RoboVM on Twitter
RoboVM on google groups
PhoneGap
RubyMotion
ionic
如果你是一个JAVA爱好者,这个可以选择,如果你无所谓JAVA和C#,那么就应用程序来讲,JAVA不如C#,JAVA 8.0还行,这个方面C#在3.0异步委托就很好了,JAVA只能用内部类。做界面开发和JAVA-WEB不同。大量体现异步性能。就算使用ANDROID大量的内部类就让人纠结。JAVA-8终于开启了新的篇章。
相对来讲java这个方面的资料比较好。
最新的RoboVM更加友好,界面开发都要学会IB(interface builder)。
其他的JAVA工具
1. Codename One
Codename One是一个针对移动应用开发者的、开源的、跨平台的Java工具,旨在帮助Java开发者通过单一代码库来针对所有移动平台(智能手机和平板电脑)构建本地应用,且无需在应用性能、功能或开发简易性方面妥协。该工具是开源的,可免费用于商业用途。
通过Codename One,开发移动应用只需5步:
下载Codename One插件
使用Java编写代码
使用可视化工具设计应用的外观
使用模拟器测试应用
生成本地移动应用
2. RoboVM
RoboVM可以将 Java 字节码编译成 ARM 或者 x86 平台上的原生代码,应用可直接在CPU上运行,无需其他解释器或者虚拟机。
RoboVM同时包含一个Java到Objective-C的桥,可像其他Java对象一样来使用 Objective-C对象。且支持大多数UI Kit,将来会支持更多的框架。
RoboVM基于 GPLv2 许可协议。
3. XMLVM
XMLVM项目的目标是提供一种灵活的可扩展的交叉编译器工具链。XMLVM基于Sun的JVM和微软的CLR(公共语言运行时)上的字节码进行交叉编译,而非源码。
通过XMLVM,你可以轻松将Java代码编译为Objective-C,在iOS平台上运行。
4. J2ObjC
J2ObjC(Java to Objective-C)是谷歌出品的一个开源的命令行工具,旨在使开发者基于Java编写的非UI代码(如数据访问、应用程序逻辑等),可以在Web应用(使用GWT开发)、Android应用和iOS应用之间共享。
不过J2ObjC并没有提供任何形式的独立于平台的UI工具包,iOS应用的界面仍需要使用Objective-C/C++和iOS SDK来开发。
5. Avian
Avian出现在这里似乎有点不合适,因为它没有解决Java转iOS的具体问题。但是,Avian是一个轻量的JVM,其中包含了一个工具,可以将Java字节码转换为能够运行在ARM设备(如iPhone)上的本地二进制文件。
高效开发需要IDE和最优秀的高效的语言。IOS主要有MONOTouch。JAVA有什么呢?
毕竟某种意义上讲,和JAVA/C#相比,OBJ-C是低效的。而最新的Swift语言高效了些,但是语言是个什么东西,四不像的语言,如果你从零学起可以考虑学习Swift语言,开发工具XCODE6。
以下部分是转载。
RoboVM
官方地址: http://www.robovm.com/ 自从使用Objective C开发原生的iOS应用以来,就有许多使用别的语言来开发iOS应用的替选方案。比如说,下面就列出了一些:
PhoneGap, 使用HTML/JS来开发
RubyMotion,使用Ruby
ionic,使用AngularJS开发
我最近发现的一个的是RoboVM,你可以通过它来用Java开发iOS程序。本文将介绍一下如何使用RoboVM和Java来开发一个简单的应用。
下面是一些前期准备:
OSX 10.9.3
JDK 1.7
Eclipse Kepler 4.3
Xcode 5.1.1
首先,给eclipse安装一个RoboVM插件,在帮助——安装新的软件底下, http://download.robovm.org/eclipse/。这需要重启下IDE.
插件安装完之后,现在可以创建一个新的工程了。选择"RoboVM iOS Project"选项。
工程名,主类,应用名,应用ID都填成HelloWorld。正如下面截图所示的那样。
不知道什么原因,当我使用向导的时候,主类没有生成成功,只能手动做了。因此创建一个HelloWorld的类。
把下面内容粘贴到HelloWorld类里面。
import org.robovm.apple.foundation.NSAutoreleasePool;
import org.robovm.apple.foundation.NSDictionary;
import org.robovm.apple.foundation.NSString;
import org.robovm.apple.uikit.UIApplication;
import org.robovm.apple.uikit.UIApplicationDelegateAdapter;
public class HelloWorld extends UIApplicationDelegateAdapter {
@Override
public boolean didFinishLaunching(UIApplication application,
NSDictionary<NSString, ?> launchOptions) {
return true;
}
public static void main(String[] args) {
NSAutoreleasePool pool = new NSAutoreleasePool();
UIApplication.main(args, null, HelloWorld.class);
pool.close();
}
}
这里我们继承了UIApplicationDelegateAdapter类,它是RoboVM版的UIApplicationDelegate。类里面有个main方法,它是用来启动应用的。
现在我们要做的就是重写下didFinishLaunching方法来生成一个UIWindow以及UILabel。将下面的代码放到方法里就可以了。
@Override
public boolean didFinishLaunching(UIApplication application,
NSDictionary<NSString, ?> launchOptions) {
UIWindow window = new UIWindow(UIScreen.getMainScreen().getBounds());
UILabel label = new UILabel(new CGRect(50, 50, 100, 50));
label.setText("Hello World");
window.addSubview(label);
window.setBackgroundColor(UIColor.colorGreen());
window.makeKeyAndVisible();
return true;
}
述的大部分代码都是自解释型的。CGRect的构造参数就是x,y坐标以及标签的长和宽。
如果你在工程上点击右键,并选择作为一个iOS模拟器应用来运行。你会看到弹出一个iOS模拟器,上面是绿屏并显示有文字,“Hello World"。就如下面的截图那样。
如果你到了这步了,这意味着你的环境已经设置好了,可以开始使用Java来开发iOS程序了。
下面是一些参考资料。希望本文能对你使用Java来进行iOS开发有所帮助。
本文的源代码
RoboVM
RoboVM on Twitter
RoboVM on google groups
PhoneGap
RubyMotion
ionic
如果你是一个JAVA爱好者,这个可以选择,如果你无所谓JAVA和C#,那么就应用程序来讲,JAVA不如C#,JAVA 8.0还行,这个方面C#在3.0异步委托就很好了,JAVA只能用内部类。做界面开发和JAVA-WEB不同。大量体现异步性能。就算使用ANDROID大量的内部类就让人纠结。JAVA-8终于开启了新的篇章。
相对来讲java这个方面的资料比较好。
最新的RoboVM更加友好,界面开发都要学会IB(interface builder)。
其他的JAVA工具
1. Codename One
Codename One是一个针对移动应用开发者的、开源的、跨平台的Java工具,旨在帮助Java开发者通过单一代码库来针对所有移动平台(智能手机和平板电脑)构建本地应用,且无需在应用性能、功能或开发简易性方面妥协。该工具是开源的,可免费用于商业用途。
通过Codename One,开发移动应用只需5步:
下载Codename One插件
使用Java编写代码
使用可视化工具设计应用的外观
使用模拟器测试应用
生成本地移动应用
2. RoboVM
RoboVM可以将 Java 字节码编译成 ARM 或者 x86 平台上的原生代码,应用可直接在CPU上运行,无需其他解释器或者虚拟机。
RoboVM同时包含一个Java到Objective-C的桥,可像其他Java对象一样来使用 Objective-C对象。且支持大多数UI Kit,将来会支持更多的框架。
RoboVM基于 GPLv2 许可协议。
3. XMLVM
XMLVM项目的目标是提供一种灵活的可扩展的交叉编译器工具链。XMLVM基于Sun的JVM和微软的CLR(公共语言运行时)上的字节码进行交叉编译,而非源码。
通过XMLVM,你可以轻松将Java代码编译为Objective-C,在iOS平台上运行。
4. J2ObjC
J2ObjC(Java to Objective-C)是谷歌出品的一个开源的命令行工具,旨在使开发者基于Java编写的非UI代码(如数据访问、应用程序逻辑等),可以在Web应用(使用GWT开发)、Android应用和iOS应用之间共享。
不过J2ObjC并没有提供任何形式的独立于平台的UI工具包,iOS应用的界面仍需要使用Objective-C/C++和iOS SDK来开发。
5. Avian
Avian出现在这里似乎有点不合适,因为它没有解决Java转iOS的具体问题。但是,Avian是一个轻量的JVM,其中包含了一个工具,可以将Java字节码转换为能够运行在ARM设备(如iPhone)上的本地二进制文件。
相关文章推荐
- Visual Studio:针对 Java 开发人员的 C# 编程语言
- 选择C#还是Java归根结底是平台问题
- java的应用和开发工具的选择
- java和c#企业开发
- java和c#企业开发
- Java开发环境选择与配置
- 郑昀邀请开发(PHP/ASP.NET/C#/Java/C++)人才加盟etone[工作地点:北京]
- 从今起改投JAVA,c#不再是我的首选了,开源也许是个不错的选择
- 针对 Java 开发人员的 C# 编程语言
- JAVA程序员应当如何来选择RIA的开发环境
- Visual Studio:针对 Java 开发人员的 C# 编程语言
- “软件工业奥斯卡”SYS-CON 读者选择奖: Java开发 (转贴)
- “软件工业奥斯卡”SYS-CON 读者选择奖: Java开发
- 你该选择JAVA还是.NET来做开发
- “软件工业奥斯卡”SYS-CON 读者选择奖: Java开发
- Java开发中的线程安全选择与Swing[Z]
- 读者选择奖: Java开发
- 工作流的选择 C#还是Java
- “软件工业奥斯卡”SYS-CON 读者选择奖: Java开发
- 针对Java 开发人员的C# 编程语言-