如果我是编程新手,想从移动端开发入手,应该从 Flutter 开始吗?


这有更多的两部分答案。

  1. Flutter 非常适合编写代码,并且在相同页面上的代码比 Android 或 iOS 应用程序少得多。所以对于大多数应用,我认为不会有大问题。

  2. 您需要记住的一件事是 Flutter 还依赖于 Android 和 iOS 项目,您至少需要熟悉其中的项目结构。如果您想编写任何本机代码,您肯定需要在任一平台或两个平台上的经验。

我个人的意见是先学习一两个月的 Android/iOS,然后从 Flutter 开始。

什么是package和插件?



package允许您将新的小部件或功能导入您的应用程序。package和插件之间有一个小的区别。包通常是纯粹用 Dart 编写的新组件或代码,而插件则可以使用本机代码在设备端提供更多功能。通常在 DartPub 上,包和插件都被称为包,只有在创建新包时才会明确提到区别。

什么是 pubspec.yaml 文件,它有什么作用?


Pubspec.yaml 允许您定义您的应用程序依赖的包,声明您的资产,如图像、音频、视频等。它还允许您为您的应用程序设置约束。对于 Android 开发者来说,这大致类似于 build.gradle 文件,但两者之间的差异也很明显。

为什么第一个 Flutter 应用构建需要这么长时间?


首次构建 Flutter 应用程序时,会构建特定设备的 APK 或 IPA 文件。因此,使用 Gradle 和 XCode 构建文件需要时间。下次重新启动或热加载应用程序时,Flutter 基本上会在现有应用程序之上修补更改,从而提供极快的刷新。

注意:通过热重载或重启所做的更改不会保存在设备 APK 或 IPA 文件中。为确保您的应用在设备上进行所有更改,请考虑再次停止并运行该应用。

state是什么意思?什么是 setState()?


**简单来说,“状态”是小部件变量值的集合。**任何可以改变的东西,比如计数器计数、文本等,都可以成为 State 的一部分。想象一个计数器应用程序,主要的动态是计数器计数。当计数改变时,需要刷新屏幕以显示新值。setState() 本质上是一种告诉应用程序使用新值刷新和重建屏幕的方法。

什么是有状态和无状态小部件?


TL;DR:允许您刷新屏幕的小部件是有状态小部件。没有状态的小部件是无状态的。

更详细地说,一个内容可以改变的动态小部件应该是一个有状态的小部件。无状态小部件只能在更改参数时更改内容,因此需要在小部件层次结构中的位置点上方完成。包含静态内容的屏幕或小部件应该是无状态小部件,但要更改内容,需要有状态。

你如何处理 Flutter 代码中的缩进和结构?


Android Studio 提供了工具来简化 Flutter 代码的结构化。主要的两点是:

  1. Alt + Enter/ Command + Enter:这使您可以轻松地包装和删除小部件以及在复杂的层次结构中交换小部件。要使用它,只需将光标指向小部件声明并按下按键即可提供一些选项。这有时感觉像是天赐之物。

  2. DartFMT:dartfmt 格式化您的代码以保持干净的层次结构和缩进。在您不小心移动了几个括号后,它会使您的代码更漂亮。

为什么我们将函数传递给小部件?


我们将一个函数传递给一个小部件,本质上是说,“当有事情发生时调用这个函数”。函数是 Dart 中的第一类对象,可以作为参数传递给其他函数。使用 Android (<Java 8) 等接口的回调对于简单的回调有太多的样板代码。

Java回调:

button.setOnClickListener(new View.OnClickListener() {

@override

public void onClick(View view) {

// Do something here

}

}

);

(注意,这只是设置监听器的代码。定义按钮需要单独的 XML 代码。)

Dart equivalent:

FlatButton(

onPressed: () {

// Do something here

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

总结

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img
阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-4WIFfVX0-1712844214231)]

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐