2024年Android最新选 Kotlin 还是学 Flutter 呢?,字节大神强推千页PDF学习笔记

本文讨论了35岁Android程序员面临的行业挑战,强调了技能提升的重要性,特别是Kotlin和Flutter的学习。作者提供了系统学习资源,并建议加入技术社区,以便于职业发展和知识共享。
摘要由CSDN通过智能技术生成

结语

看到这篇文章的人不知道有多少是和我一样的Android程序员。

35岁,这是我们这个行业普遍的失业高发阶段,这种情况下如果还不提升自己的技能,进阶发展,我想,很可能就是本行业的职业生涯的终点了。

我们要有危机意识,切莫等到一切都成定局时才开始追悔莫及。只要有规划的,有系统地学习,进阶提升自己并不难,给自己多充一点电,你才能走的更远。

千里之行始于足下。这是上小学时,那种一元钱一个的日记本上每一页下面都印刷有的一句话,当时只觉得这句话很短,后来渐渐长大才慢慢明白这句话的真正的含义。

有了学习的想法就赶快行动起来吧,不要被其他的事情牵绊住了前行的脚步。不要等到裁员时才开始担忧,不要等到面试前一晚才开始紧张,不要等到35岁甚至更晚才开始想起来要学习要进阶。

给大家一份系统的Android学习进阶资料,希望这份资料可以给大家提供帮助。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

首先,你要问自己的第一个问题就是:“我为什么要学习 Kotlin 或 Flutter?学会之后可以用来做什么?” 这个问题又可以展开为以下 3 点:

  • 你想要学习移动开发吗?

  • 你想要得到一份移动开发者的工作吗?

  • 你想要以个人开发者或小型团队来开发一款自己的移动产品吗?

你想要学习移动开发吗?


如果你的首要目标是对移动开发有所涉猎,并且能够构建出一个小型的业余项目,那么选择 Kotlin 还是 Flutter 其实是没有什么太大区别的。

然而,需要谨记的是,当你在 Flutter 和 Kotlin 之间做选择的时候,其实你也是在选择:

  • Flutter/Dart

  • iOS/Swift/Objective-C

  • Android/Kotlin/Java

Flutter 是一个完整的应用开发工具集,其中包括了使用 Dart 来作为编程语言,以及一系列的 UI 组件,还有一些独有的编程模式、最佳实践技巧、调试方法、工作流程等。

要想将 Flutter 和其他的平台工具集进行对比,你还需要对它们所处的生态有比较完整的了解才行。

Kotlin 和 Flutter 哪个更容易获得一份工作?


如果你的首要目标是得到一份移动开发者的工作,那么比较好的一种选择方式就是看哪种技能的需求量更高一些。

在 LinkedIn 上搜索与 Kotlin 和 Flutter 相关的工作岗位,得到的结果如下(数据限定在美国区域,时间截止到 2019 年 6 月):

  • Flutter:315 份结果

  • Kotlin: 3342 份结果

Flutter 毕竟还是一门比较新的技术,并且它对于一位移动开发者而言,学习成本是比较巨大的。相比之下,Kotlin 对于 Android 开发者而言则非常容易上手。可能也是因为这些原因,Flutter 的工作岗位相对少了许多。

而工作岗位数量上的差别,可能同时意味着这两件事情:

  1. 在你所在的地区,想要找一份 Flutter 相关的工作会相对比较困难。

  2. 如果你对 Flutter 已经有了足够多的了解,将更容易在一些对 Flutter 需求量比较高的地区获得一份工作。

这看上去有一些自相矛盾,并且这个方案的可实施性还要视你目前的生活状况、找工作的紧急程度等条件因素而定。

而从另一方面来看,现在仍然有大量的需求招聘 Android 原生开发者,并且 Kotlin 对于更多人来说也是更加简单易学的。当然,大量的工作岗位意味着将会有更多的选择机会,同时也意味着会有更多的竞争者。

Kotlin 和 Flutter 哪个更适合个人或小型团队来开发产品?


如果你是想要使用 Kotlin 或 Flutter 来开发一款自己的应用程序,并投入商业运作,那么刚才所讨论的那些你可以全部忘记,我们来重新思考一张更加完整的版图。

如果你正在开发一款移动产品,那么你非常有可能希望它能够同时运行在 iOS 和 Android 这两大平台上。

使用 Flutter 你可以轻松做到这一点,而使用 Kotlin 则非常困难。

如果你想使用 Kotlin 来进行跨平台开发,可以构建一个 Kotlin 多平台项目,也可以分别单独开发一套 iOS 和 Android 的项目工程,但是不管使用哪种方式,你都必须同时对 iOS 和 Android 的原生开发有足够多的了解才行。

所以,如果你的目标非常明确,就是要以低成本的方式开发一款跨平台应用程序,那么 Flutter 无疑是更加合适的选择。我们稍后会针对这一点进行更加详细的讨论。

关于这个问题,也可以更加详细地将它展开成以下 5 点:

  • 你想要开发一款出色的 Android 应用吗?

  • 你想要开发一款出色的 iOS 应用吗?

  • 你想要开发一款可以同时运行在 iOS 和 Android 平台上的应用吗?

  • 你希望你的应用程序不仅仅运行在移动平台吗?

  • 你需要自己来编写后台服务器程序吗?

你想要开发一款出色的 Android 应用吗?


如果你的目标是开发一款出色的 Android 应用,并且使用 Android 平台提供给我们的各种最新特性,那么请选择原生 Android 开发。

当然,这并不意味着你就必须要使用 Android+Kotlin 的组合模式,Android+Java 的组合在未来很长一段时间内仍然是可以完美工作的。不过,我坚信学习 Kotlin 能够让你更加享受代码的开发过程。

你想要开发一款出色的 iOS 应用吗?


类似地,如果你的目标是开发一款出色的 iOS 应用,并且使用平台提供的各种最新特性,那么我的建议是使用 Swift 语言来进行原生 iOS 开发。

你想要开发一款可以同时运行在 iOS 和 Android 平台上的应用吗?


如果你想要开发的是一款能够同时运行在移动双平台的应用程序,这个问题就变得有趣了,因为在 Kotlin 和 Flutter 的选择上面你将会有 3 种选项:

  1. Android 和 iOS 应用都使用原生的开发方式。

  2. 开发两个原生应用程序,但使用 Kotlin 多平台项目来共享代码。

  3. 开发一个 Flutter 应用。

同时使用原生开发的方式要求你或你的团队在双平台之间各自实现,且没有任何代码共享。如果你是位个人开发者,这可能会是最为低效的一种选项,除非你对 iOS 和 Android 的原生开发都非常精通。但同时这也会是最为安全的一种选项,因为原生开发是最成熟的一种开发方式,不管苹果还是 Google,未来都不可能放弃对原生开发的支持,并且你还能尽快使用到各种平台的最新特性。

而如果你想开发两个原生的应用程序,但是要尽可能多地共享两个平台之间的代码,那么可以考虑构建一个 Kotlin 多平台项目。不过这对于缺少经验的开发者而言应该不是最佳的选项,因为 Kotlin 多平台功能还很新,能够使用的工具和第三方库也非常少。

而开发一个 Flutter 应用应该是让你的应用程序能够同时运行到 iOS 和 Android 平台上最快速的方式了,尤其当你是一位个人开发者,使用 Flutter 将可以节省大量的开发时间。另外,由于你并不需要接触多少系统底层的 API,也不用在乎不同平台之间的视觉体验和用户体验差异,因此可以省去很多编写平台专属优化代码的时间。

你希望你的应用程序不仅仅运行在移动平台吗?


Flutter 团队并没有仅仅只是把功能限定在了移动平台上,而是将它进一步延伸到了网页平台,当然这个功能目前还在开发当中。Flutter 给我们提供的便利性就是可以使用同一份代码来让应用程序运行到不同的平台上面,而且随着 Flutter 支持的平台越多,使用 Flutter 的性价比就会越高。

当然你也可以考虑使用 Kotlin 多平台项目来支持网页平台的开发,但是始终要记得,Kotlin 多平台项目的核心思路是共享代码,因此你还是要为每个平台去编写原生的代码,比如开发 UI 界面,以及对共享代码进行调用等。注意,随着你要支持的平台越多,这种方案的成本也会越大。

你需要自己来编写后台服务器程序吗?


另外可能还有一种比较少见的场景,你需要自己来编写后台服务器程序吗?一般的公司都会有专门的服务器人员来开发后台服务器程序,而如果你需要自己来编写服务器程序的话,Kotlin 是值得进行研究的,因为借助 Ktor 框架可以轻松实现服务器端程序的编写,而掌握 Kotlin 语言则是使用 Ktor 框架的前提条件。

最后

**要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

图片转存中…(img-tUV2T8pF-1714979481602)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值