文档章节

Why mobile iOS and Android app should be in Java?

 谁知相恋最长情
发布于 2016/02/13 23:33
字数 904
阅读 3
收藏 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.


本文转载自:https://robovm.com/eight-8-reasons-ios-and-android-app-should-be-in-java/

共有 人打赏支持
粉丝 0
博文 18
码字总数 9286
作品 0
程序员
私信 提问
2011 移动平台开发现状

Visionmobile 根据“2011 开发者经济调查报告”中的数据制作了一幅信息图,使我们可以一览手机各平台的开发现状。这幅信息图关注的的手机平台有 Android,黑莓,iOS(iPhone),Java ME,Mob...

小卒过河
2011/07/20
1K
5
使用 Go 进行 iOS 和 Android 编程

虽然 Go 并不是一门新语言,不过最近两年来 Go 还是增加了很多有趣的特性,而且使用这门语言的知名项目的数量也在快速的增长。我写过一篇文章,介绍了 SitePoint 用到的编程语言,其中提到了...

oschina
2015/12/09
22.6K
45
开源轻量级 IM 框架 MobileIMSDK v3.0 发布!

一、更新内容简介 本次更新为主版本更新,更新内容包含了简化了消息发送目标的方式、支持Web版与APP版互通、优化了Protocal协议结构等主要升级,详细更新内容见“版本更新说明”部分。 重要提...

JackJiang-
2017/06/30
2K
11
Sr. Software Engineer-iOS/Android

邮箱 mp0118@manpower.com.cn 公司背景 美资背景,主要业务包括分为医疗器械,影像,药品,医疗用品,四大业务部门。全球医疗保健业提供产品最为广泛的世界级供应商之一,遍布全世界50多个国...

江湖再见6
2013/01/29
455
2
最简单的基于FFmpeg的移动端例子附件:Android 自带播放器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leixiaohua1020/article/details/47056733 ===================================================== 最简单的...

雷霄骅
2015/07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
17
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
11
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部