`
deepinmind
  • 浏览: 449431 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
1dc14e59-7bdf-33ab-841a-02d087aed982
Java函数式编程
浏览量:41419
社区版块
存档分类
最新评论

使用Java开发iOS应用

阅读更多

自从使用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


  • 原创文章转载请注明出处:http://it.deepinmind.com

    英文原文链接
    9
    0
    分享到:
    评论
    5 楼 vigiles 2014-06-17  
    通过Help,Install new software安装了插件
    创建RoboVM IOS Project(似乎分辨率太低,看不到IOS App Settings部分),
    New Class,

    但eclipse提示:
    Errors occurred during the build.
    Errors running builder 'RoboVM Class Builder' on project 'HelloRoboVM'.
    Could not initialize class org.robovm.llvm.Target
    如何解决?
    4 楼 deepinmind 2014-06-16  
    vigiles 写道
    如何更进一步的发布?


    后续的流程和正常的是一样的。可以通过命令行生成原生的IOS应用
    3 楼 deepinmind 2014-06-16  
    bewithme 写道
    请问如何真机调试


    真机调试就右键选择这个

    Run As -> iOS Device App
    2 楼 vigiles 2014-06-14  
    如何更进一步的发布?
    1 楼 bewithme 2014-06-13  
    请问如何真机调试

    相关推荐

      Java向IOS设备push消息

      本篇将详细阐述如何使用Java实现这一功能,涉及的主要知识点包括:Java服务器端推送技术、Apple Push Notification Service(APNS)以及iOS设备的Device Token。 首先,理解Apple Push Notification Service (APNS)...

      JAVA与IOS加解密

      在IT行业中,加解密技术是信息安全领域的重要组成部分,特别是在移动设备如Android和iOS的应用开发中。本主题“JAVA与IOS加解密”主要关注如何在JAVA服务端和iOS客户端之间进行安全的数据交换,确保信息在传输过程中...

      RoboVM和libGDX的绑定[用java调用ios的静态库.a]

      在IT行业中,开发跨平台应用是一项常见...这极大地扩展了libGDX的应用场景,并降低了开发iOS应用的学习曲线,尤其是在已有Java代码基础的情况下。不过,这也要求开发者具备一定的iOS开发知识和对RoboVM绑定机制的理解。

      java ios自动升级服务

      1. **构建版本信息API**:使用Java开发一个Web服务接口,该接口返回最新的应用版本信息,包括版本号、更新日志、下载链接等。 2. **存储和管理版本**:服务器需要存储和管理不同版本的应用包,为用户提供下载。这...

      iOS软件开发 iOS软件外包 iPhone开发 iPad开发 html5开发 android开发

      开发者使用Java或Kotlin语言,并在Android Studio开发环境中工作。Android开发涉及对Android SDK的熟悉,以及对Android应用生命周期、用户界面设计(通过XML布局文件)、通知管理、数据存储、网络通信等概念的理解。...

      Andorid JAVA IOS 全套汇总

      开发iOS应用主要使用Swift或Objective-C语言,以及Xcode IDE: 1. Swift/Objective-C:理解这两种语言的语法和特性,Swift更现代,Objective-C则更接近C/C++。 2. iOS SDK:包括UIKit框架,提供创建用户界面和处理...

      ios应用开发入门教程

      它是开发iOS应用的基础,提供项目管理、代码编辑、调试、性能分析和App Store提交等功能。通过Xcode,开发者可以使用Swift或Objective-C编写代码,并通过Interface Builder创建用户界面。 2. **Objective-C**:...

      java写的iOS后台服务器

      Java编写的iOS后台服务器主要负责为iOS应用提供后台支持,特别是在实现推送通知服务方面。这里我们探讨的关键知识点包括Java服务器开发、iOS推送通知服务(APNs:Apple Push Notification service)以及两者之间的...

      ios 消息推送 java后端demo(包括jar包)

      在iOS应用开发中,消息推送是一项重要的功能,它允许服务器向设备发送通知,即使应用程序在后台运行或完全关闭。这个“ios 消息推送 java后端demo”是为开发者提供的一个示例,帮助理解如何使用Java后端实现对iOS...

      android,java,ios,php,程序员专用面试题(APK手机格式)

      3. **iOS**:iOS是Apple公司的移动操作系统,使用Objective-C或Swift进行开发。面试题可能包括: - Swift或Objective-C基础:语法特性、内存管理、ARC、分类与扩展。 - MVC/MVVM/ VIPER等架构模式。 - UI设计:...

      IOS推送实现(java)

      在iOS应用开发中,为了实现实时向用户发送通知,我们通常会采用Apple Push Notification service (APNs)。本文将详细介绍如何使用Java语言来搭建一个iOS推送服务,涵盖所需依赖、详细代码示例以及开发步骤。 一、...

      Android Java iOS 三端RSA和AES双向加密修正版

      在移动应用开发中,安全通信是至关重要的,尤其是在涉及到用户数据和隐私时。"Android Java iOS 三端RSA和AES双向加密修正版"是一个专为这三大主流平台设计的加密解决方案,旨在提供可靠的数据保护机制。以下是关于...

      java android ios 小程序b2b大型商城系统四端APP源码全套源码+Android+Ios+商城

      1. **Java后端开发**:作为系统的后台支撑,Java以其稳定性和强大的企业级应用支持而被选中。它可能采用了Spring Boot或Spring Cloud框架,提供了RESTful API接口,用于处理客户端请求,包括商品管理、订单处理、...

      ios推送java写的后台

      在iOS应用开发中,苹果提供了Apple Push Notification service (APNs) 来实现实时的消息推送功能,让应用程序在后台状态下也能接收到服务器的通知。本文将详细介绍如何使用Java编写后端来实现iOS的推送服务。 首先...

      基于Java的 iOS 推送通知

      在iOS平台上,推送通知是一种非常...总的来说,基于Java的iOS推送通知涉及到了iOS的通知机制、JavaPNS库的使用以及与APNS服务器的交互。正确配置和使用这些组件,可以有效地实现在Java服务端向iOS设备发送推送通知。

      IOS开发

      iOS 开发是指使用 Objective-C 语言在 Mac 系统上使用 Xcode 开发工具进行移动应用程序开发的过程。下面将从环境需求、环境搭建、开发语言三个方面对 iOS 开发进行详细介绍。 一、环境需求 iOS 开发需要 Mac 系统...

      苹果登录使用Apple服务端验证登录-JAVA源码

      在开发iOS应用时,苹果推荐使用Apple ID进行用户身份验证,以提高安全性并遵循其隐私政策。本知识点将深入探讨如何在后端服务器上使用Java实现Apple服务端验证登录的过程,以及如何对苹果授权登录令牌(JWT)进行...

      Java向苹果服务器推送消息(Java实现HTTP/2协议发送APNS)

      Java向苹果服务器推送消息是iOS应用开发者经常遇到的需求,用于实时通知用户新的信息或系统状态。APNs(Apple Push Notification service)是苹果公司提供的推送服务,允许开发者将消息推送到用户的iOS设备上。本...

      AES-Java-iOS-Android.zip

      这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存管理(垃圾回收): Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的对象,使得开发者不需要手动管理内存,...

      iOS 根据java时间戳计算时间的demo

      本示例“iOS根据java时间戳计算时间的demo”将指导开发者如何有效地进行这种转换,以便在iOS应用中正确展示日期和时间。这里我们将深入探讨iOS中的时间戳处理和UITextField的accessoryView配置。 首先,让我们来...

    Global site tag (gtag.js) - Google Analytics