Why mobile iOS and Android app should be in Java?

发布于 2016/02/13 23:33
字数 904
阅读 3
收藏 0
点赞 1
评论 0

8 reasons your next mobile iOS and Android app should be in Java

原文来源: https://robovm.com/eight-8-reasons-ios-and-android-app-should-be-in-java/

主题 Java iOS 安卓开发

Java has been one of the most popular programming languages for over a decade, and in 2015, the language proved once again to be a driving force in the industry, as it took a commanding lead in the  TIOBE language index . While TIOBE has its fair share of methodological issues, combining it with other rankings such as RedMonk’s or  PYPL gives a good indicator of Java’s popularity. 

As  the major player in the enterprise world, Java has always kept a steady pace, but how do we account for its recent growth?  Oracle’s efforts introducing lambdas and streams in  Java 8 are certainly a big draw. Being the lingua franca of the fastest growing mobile platform is another important driving force. With  Android’s recent move to OpenJDK, and the upcoming release of  Java 9 we predict Java’s relevance will continue to increase. 

These boons to the ecosystem have obviously created an influx of new blood, but, as veterans, we know that the battle tested strengths of the platform are what will keep developers around for years to come. Here are 8 reasons why Java is the clear choice for your next mobile project:

1. Static typing

With the complexity of backends and mobile apps increasing, it’s vital to have a robust code base that is easy to maintain and refactor. Static typing is the key component in ensuring developer sanity throughout a project’s life, as it catches a large class of bugs at compile time, enables optimizations and forms the basis for Java’s second-to-none tooling ecosystem.

2. Managed Runtime

The JVM’s garbage collector greatly reduces the complexity of writing memory safe applications and eliminates most of the error-prone work associated with manual memory management. Concurrency has been an integral part of Java since its early days, providing thread-safe collections, synchronization primitives and easy to use multi-threading APIs. Reflection is the final piece of the managed runtime, enabling advanced concepts like dependency injection or aspect oriented programming.

3. Performance

The  HotSpot JVM’s  Just-in-Time compiler and its various garbage collector implementations makes it a no-brainer to choose Java over other platforms when it comes to performance for server-side applications.  Ahead-of-Time compilation is the go-to-scheme on mobile platforms. On  Android ,  ART provides near native performance for computationally heavy loads. On iOS,RoboVM uses  LLVM , the same backend used for C/C++/Objective-C/Swift compilation, to deliver performance equal to or better than Objective-C and Swift. 

4. Tooling

Regardless of a language’s theoretical benefits, it’s the tooling around the language that makes or breaks it. IDEs such as  Eclipse ,  IntelliJ and  Netbeans are the gold standard by which tools of comparable platforms are measured by. Code navigation, refactoring, completion and templating make writing and maintaining of your project effective. Code hot-swapping, debugging, profiling and unit testing let you easily pinpoint problems. And integration of source control, application server management, and build and dependency management cover the infrastructure required to deploy your project. 

5. Huge community

Depending on who you ask, there’s an estimated  9+ million Java developersaround the world. This number translates into an immense amount of conferences, books, online resources, forums and training programs from which Java developers can choose to improve their skills. The hiring pool of top Java talent dwarfs that of comparable platforms. And with Java’s ubiquity on both the server and mobile side of applications, Java developers are well positioned to move freely along the full stack. 

6. 3rd party ecosystem

Whatever problem you are trying to solve, it’s pretty much guaranteed that the Java community has already solved it for you. Your backend needs big data analytics? No problem, choose one of the plethora of solutions like  Hadoop ,  Sparkor  Elasticsearch . Don’t want to write your own analytics for your mobile app? Twitter Fabric or  Parse have you covered. Need JSON serialization in both your backend and mobile app? Easy, add  Gson and share your POJOs and serialization logic across all platforms. With  Maven and  Gradle at your disposal, integrating 3rd party libraries is as simple as adding a single line to your build file. 

7. Alternative languages

While Java remains the primary language of the JVM and is constantly evolving to be more expressive, the platform’s architecture is also welcoming to alternative languages as well. In recent years, languages like  Kotlin ,  Scala or  Clojure have seen an increase in adoption, not only due to their features, but also because of their interoperability with the existing Java ecosystem. 

8. Code sharing

We reserved the most important reason for last. Java runs on your backend, on Android and on iOS, covering all the major platforms. With this portability, you can save development cost and resources by sharing large portions of your code between these platforms. Use those freed up resources where they count: to focus on your actual product and delight your users!

2015 was clearly a banner year for Java. Perhaps it’s time to build off that success, and make  mobile cross platform Java development a part of your professional achievements for 2016.


共有 人打赏支持
粉丝 0
博文 17
码字总数 9286
作品 0
3.3 Js、App和缓存---熊孩子、篮子和仓库

前端组合:熊孩子、村姑、化妆师   上次在这提到村姑和化妆师的故事,其实村姑背后有个大家族。上次教大家如何用代码做自我介绍,其实用到了JavaScript(简称js)。   html只是个静态页面...

产品经理的技术课堂 ⋅ 04/26 ⋅ 0


C、C++、Java、JavaScript、PHP、Python分别用来开发什么? 2018-05-25 11:47编辑: 游星啊分类:程序人生来源:代码湾 开发程序人生C 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发...

游星啊 ⋅ 05/25 ⋅ 0


大家好: 本人多年技术老鸟,现有抛出一个思考。针对目前市面上的移动互联网项目(主要指客户端)类型,无非以下几种主要类型: 原生App: iOS/Android H5响应式 H5套壳(PhoneGap/微信小程序/国...

瑾少 ⋅ 04/14 ⋅ 0


开始之前 本人使用Flutter开发的一个图文App《每日图文》,可以同时运行在Android和iOS上,欢迎体验,喜欢的话还不吝Star一下。 叮叮叮~ 传送门 Flutter为何物? 随着移动App开发成本越来越...

开发的猫 ⋅ 06/06 ⋅ 0

有道云笔记是如何使用TensorFlow Lite的?

文 / 有道技术团队 近年来,有道技术团队在移动端实时 AI 能力的研究上,做了很多探索及应用的工作。2017 年 11 月 Google 发布 TensorFlow Lite (TFLlite) 后,有道技术团队第一时间跟进 TF...

谷歌开发者 ⋅ 04/21 ⋅ 0


上周六(6月9日),由Mob和安卓巴士联合举办的Mob产品分享会在上海游族大厦完美落幕。 (大合影) 活动由Mob的五位PM担任主讲嘉宾,定向邀请了12位VIP用户,共同探讨了解MobSDK产品。 活动开...

逆鳞龙 ⋅ 06/14 ⋅ 0


停车王车牌号码专用键盘 VehicleKeyboard - Android 是停车王品牌的各端产品线的基础组件,专为提高中国车牌号码输入速度而定制开发的专用键盘组件,包括以下三个项目: Android项目,为And...

艾润物联 ⋅ 04/24 ⋅ 0

浅谈Kotlin(一):简介及Android Studio中配置

浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型、基本语法、代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言:   今日新闻:谷歌宣布,将Kotli...

听着music睡 ⋅ 2017/05/18 ⋅ 0


岗位需求: 1、在线实景抓娃娃APP开发,安卓要求java语言,ios要求掌握Oc及swift。 在线抓娃娃是直播类应用,非游戏,不需要用到游戏引擎,游戏界面是通过直播画面转播画面过来,玩家远程控制...

ray ⋅ 04/21 ⋅ 0

继 Java 版权案之后,甲骨文公司开始向 JavaScript 伸手!

就在 JavaScript 成为 GitHub 网站最为流行、越来越受到广大开发者热衷的编程语言之际,国外网站 reddit 的一篇求助性帖子引发行业内的热议。 帖子大意就是,该作者收到苹果公司的一封邮件,...

亦枫 ⋅ 04/19 ⋅ 0






写在前面: 鉴于前几天的一份前端简历,虽然带着很多不看好的声音,但却帮助了很多正在求职路上的人,不管评论怎么说,我还是决定要贴出一份后端的简历。 XXX ID:357912485 目前正在找工作 ...

颖伙虫 ⋅ 15分钟前 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0


JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0


各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0



fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0


Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0


linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0