Kotlin vs Flutter,我到底应该怎么选?,首发10万字Android开发实战文档
恰巧是最近在浏览网页时, 我无意间翻到了一篇关于这个问题的英文文章, 进行了深入探讨后发现, 自己的写作水平确实无法与这篇深度分析的文章相媲美, 因此感到自己的思考不够深入, 决定全文翻译并将其分享给更多人参考, 相信这样一定能帮助到大家。
本篇文章的英文原文地址是:
我到底应该选 Kotlin 还是学 Flutter 呢?
这个问题要视情况而定。
然而,在深入探讨具体情况之前, 我们更应该先来审视一下, 这是否是一个恰当的问题. 因为, 拿Kotlin和Flutter来进行比较, 在某种程度上类似于将苹果与橘子相提并论时.
从理论上讲,Kotlin 属于编程语言领域,而 Flutter 属于跨平台的 UI 工具集。
然而, 因为这两门技术之间的差异极大而造成的问题本身是一个规模宏大的问题. 为了能够更好地解答这一复杂的问题, 在深入理解相关背景知识之前, 请确保您已经充分了解了所有相关信息.
为什么你想要学习 Kotlin 或 Flutter?
首先,请你思考并提出第一个问题是:“学习Kotlin或Flutter对我来说有什么好处?我能通过这些技术实现什么样的目标?”这个问题还可以分解为以下三个方面:
你想要学习移动开发吗?
你想要得到一份移动开发者的工作吗?
你想要以个人开发者或小型团队来开发一款自己的移动产品吗?
你想要学习移动开发吗?
假如你的主要关注点是在移动开发领域,并且有意愿开发一个个人性质的小型项目的话,那么在选择Kotlin还是Flutter时也不会有太大的困扰。
然而,在Flutter与Kotlin的选择上做出决定时,请记住这实际上也意味着...:
Flutter/Dart
iOS/Swift/Objective-C
Android/Kotlin/Java
Flutter 提供了一个全面的应用开发平台集。它采用 Dart 作为主要编程语言,并集成了多种用户界面组件库。此外, 它还提供了一系列独特的开发模式建议, 包括最佳实践指导, 并且包括故障排除策略和操作流程优化方案
希望你不仅仅是为了将Flutter与其他平台工具集进行对比, 还需要深入理解它们所处的生态系统及其复杂性
Kotlin 和 Flutter 哪个更容易获得一份工作?
如果你的主要目标是从事移动开发相关工作的机会,则优先考虑那些在该领域需求量较大的技能会是一个不错的选择。
通过浏览LinkedIn上的工作机会页面,在涉及Kotlin及Flutter的技术岗位中发现了以下职位信息(仅限于美国地区,并截至2019年6月)。
Flutter:315 份结果
Kotlin: 3342 份结果
虽然 Flutter 虽然是一门新兴的技术,在移动开发者眼中其学习成本也相当高;与之相比,在 Android 开发者眼中 Kotlin 使用起来非常直观;另一方面,在这些因素的影响下 Flutter 的就业机会数量有所减少
而工作岗位数量上的差别,可能同时意味着这两件事情:
在你所在的地区,想要找一份 Flutter 相关的工作会相对比较困难。
如果你已有丰富的Flutter开发经验,则在需求量较高的特定地区找到工作会相对容易。
看起来存在一定的矛盾;此外, 该方案的可行程度将取决于你的生活状况以及找工作的时间紧迫程度等因素。
而从另一个角度看,在当前依然有许多需求寻求 Android 原生开发者,并且 Kotlin 对许多人来说是更加易于掌握的语言。同样预示着丰富就业机会的大量工作岗位将是未来的选择。
Kotlin 和 Flutter 哪个更适合个人或小型团队来开发产品?
如果你打算使用Kotlin或Flutter开发一个自己应用,并进行商业化运营的话, 那么之前讨论的内容你都可以暂时搁置, 我们可以重新构建一个更加全面的发展框架.
如果你正在编写一个移动应用,并且你的目标是让其能够在主要的移动操作系统上运行的话。
使用 Flutter 你可以轻松做到这一点,而使用 Kotlin 则非常困难。
如果你打算在跨平台应用中使用Kotlin作为编程语言,则可以选择构建一个基于Kotlin的多平台应用框架或则选择分别独立地构建一组针对iOS系统和一组针对Android系统的完整应用集合。但无论选择哪种方法,则都需要深入掌握iOS和Android原生开发的知识与技能。
鉴于此,在你的目标明确且具有方向性的前提下(注:此处添加注释),建议采用Flutter作为开发工具更为适宜。
关于这个问题,也可以更加详细地将它展开成以下 5 点:
你想要开发一款出色的 Android 应用吗?
你想要开发一款出色的 iOS 应用吗?
你想要开发一款可以同时运行在 iOS 和 Android 平台上的应用吗?
你希望你的应用程序不仅仅运行在移动平台吗?
你需要自己来编写后台服务器程序吗?
你想要开发一款出色的 Android 应用吗?
如果你希望创建一个卓越的Android应用,并且想要利用我们提供的最新技术特色,请考虑采用原生Android开发方式。
不过,并不意味着你就必须要采用 Android+Kotlin 的搭配模式;事实上,在相当长的一段时间内 Android+Java 组合依然能够完美运行各种应用软件。然而我坚信学习 Kotlin 将能让你更加沉浸于代码开发的过程中
你想要开发一款出色的 iOS 应用吗?
同样地,在你希望打造一款卓越的 iOS 应用程序时,并且利用平台提供的最新功能时,则我的建议是推荐使用 Swift 语言进行原生 iOS 开发。
自我简述一下:我于2013年毕业于上海交通大学,在过去几年中曾在中小型公司工作过一段时间,并可访问过华为、OPPO等知名公司。自2018年以来一直在阿里巴巴工作至今。
清楚地认识到许多Android开发人员希望提升专业技能,
他们通常选择通过自主学习或参加培训课程来实现目标。
然而,
对于培训机构来说费用通常不菲,
这对个人来说确实带来了不小的压力。
自学虽然能取得一定进步但缺乏系统性会导致效率低下且耗时长,
而且极易碰到技术瓶颈无法突破进展!**
经过精心整理,《2024年Android移动开发全套学习资料》应运而生,其初衷简单明了:旨在助力提升那些渴望自主学习却又缺乏入门方向的朋友们的专业水平,并有效缓解他们可能面临的 hefty 学习成本问题。







不仅包含针对新手的学习资源,并且提供了针对经验丰富者提供的高级课程几乎涵盖了所有相关知识点并真正形成了系统化的知识结构。
因为文件较大,在此仅用于展示目录大纲的截屏,并列出各节点内容:包括大厂面经、学习笔记等资料;其中具体包括源码讲义、实战项目等资源,并计划持续补充和完善相关内容
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)

最后
大家都说三年是程序员的一个坎儿了。这两年多时间里升职加薪或增强自身的核心竞争力变得至关重要。
技术的发展速度非常快。如何系统地进行学习和训练,才能掌握成为高级工程师所需的关键能力?最终目标则是成为Android架构师或技术专家。
这段时间里,我对阿里、腾讯、字节跳动、华为以及小米等公司在Android系统相关的面试题进行了收集和整理,并归纳总结了其面试要求和技术要点。实际耗时比预期多出不少,并将这些内容归纳整理为一份详尽的"Android架构师"面试PDF文档。

Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言

高级UI与自定义view;
自定义view,Android开发的基本功。

性能优化; 数据结构与算法以及设计模式理论都是这里面的关键基础和重点内容需要熟练掌握。

NDK开发;
未来的方向,高薪必会。

前沿技术;
组件化,热升级,热修复,框架设计

丰富的学习资源并不少见,
但若所学知识缺乏系统的知识结构,
在遇到问题时往往停留在表面而非深入,
没有进一步深入学习的情况下,
就难以实现实质性的技术进步。
这份系统化的技术体系或许能为大家提供一个方向参考。
在构建这些技术框架的过程中,我开发并整理了一套系统的高级进阶教程,相较于分散的碎片化学习方式而言,其整体学习效果将更加显著.
显然,为了深入掌握这些能力并非易事.无论所处岗位的工作强度多大,在软件开发领域从业者都清楚每天的工作压力之大;然而即便如此繁忙的日程安排下,也应当固定预留出每周二小时的时间用于专业技能的学习.
不出半年,你就能看出变化!
76184)]
丰富的学习资源互联网上有关Android的内容浩如烟海。
然而若想要真正掌握这些知识却需要一套完整的体系作为支撑基础。
遇到技术难题时若仅仅停留在表面了解无法深入挖掘就容易导致知识储备仅停留在皮毛阶段。
因此这份系统化的技术架构设计或许能为大家提供一个明确的方向。
在为每个技术框架的构建过程中,我进一步系统地整理出了高级进阶教程。相较于仅靠零散学习所达到的效果而言,在系统性学习上体验更加显著。
当然,在深入学习和掌握这些能力方面并不容易。关于如何提高自身能力呢?即使工作繁忙也要每天固定拿出两个小时来学习。
不出半年,你就能看出变化!
