Subtitles section Play video
To become a mobile app developer, there are 5 essential skills.
要成為一名移動應用程序開發人員,需要掌握 5 項基本技能。
Let's go over them one by one.
讓我們一個一個來看看。
There are basically two ways to build mobile apps, native or cross-platform.
構建移動應用程序基本上有兩種方式:原生或跨平臺。
With native development, we can build an app that runs only on a particular platform like iOS or Android.
通過原生開發,我們可以構建只能在 iOS 或 Android 等特定平臺上運行的應用程序。
This approach gives us full control over the capabilities of the target platform, resulting in great performance and the best user experience.
這種方法使我們能夠完全控制目標平臺的功能,從而實現出色的性能和最佳的用戶體驗。
However, the downside is that if you want to build the same app for a different platform, you have to create a separate project in an entirely different language and ecosystem.
但缺點是,如果您想為不同的平臺構建相同的應用程序,就必須使用完全不同的語言和生態系統創建一個單獨的項目。
This means two separate projects and two sets of bugs to fix.
這意味著有兩個獨立的項目和兩組錯誤需要修復。
That's where cross-platform or multi-platform development comes to the rescue.
這就是跨平臺或多平臺開發的優勢所在。
With cross-platform development, we can reduce development time by reusing the same code for different platforms and potentially reduce bugs.
通過跨平臺開發,我們可以在不同平臺上重複使用相同的代碼,從而減少開發時間,並有可能減少錯誤。
Fixing a bug once means it's fixed across multiple platforms.
修復一次錯誤就意味著在多個平臺上都能修復。
Now, for native development, we have a few options.
現在,對於在地開發,我們有幾種選擇。
For iOS, we can use Objective-C, which is an older language, or Swift, which is modern and preferred.
對於 iOS,我們可以使用 Objective-C(一種較老的語言)或 Swift(一種現代的首選語言)。
For Android, we can use Java, which is a traditional language, or Kotlin, which is modern and preferred.
對於安卓系統,我們可以使用傳統語言 Java 或現代首選語言 Kotlin。
For cross-platform development, the option depends on the framework or toolkit we use.
對於跨平臺開發,選擇取決於我們使用的框架或工具包。
There are several cross-platform toolkits like React Native, Flutter, Kotlin Multiplatform, Maui, and a few others.
有幾種跨平臺工具包,如 React Native、Flutter、Kotlin Multiplatform、Maui 等。
Let's dive into each one.
讓我們逐一瞭解。
First off, we have React Native, which was released by Facebook in 2015.
首先是 Facebook 於 2015 年發佈的 React Native。
This toolkit lets you build mobile apps using JavaScript and React, which is a popular library for building web user interfaces.
該工具包可讓您使用 JavaScript 和 React(一種用於構建網絡用戶界面的流行庫)構建移動應用程序。
Some big names using React Native include Microsoft Office, Skype, and even Facebook itself.
使用 React Native 的大公司包括 Microsoft Office、Skype,甚至 Facebook 本身。
Then we have Flutter, which is a Google product that came out in 2017.
然後是 Flutter,它是谷歌在 2017 年推出的一款產品。
Flutter uses a programming language called Dart, which takes the best parts of JavaScript, Java, and C Sharp.
Flutter 使用一種名為 Dart 的編程語言,它吸收了 JavaScript、Java 和 C Sharp 的精華。
Some examples of apps built with Flutter are eBay, Alibaba, and Google Pay.
使用 Flutter 構建的應用程序包括 eBay、阿里巴巴和 Google Pay。
It's really powerful and gaining a lot of traction.
它真的很強大,並獲得了很多人的青睞。
Now let's talk about Kotlin Multiplatform.
現在讓我們來談談 Kotlin 多平臺。
This is the newest player released by JetBrains, the same company behind tools like IntelliJ, PyCharm, and WebStorm.
這是 JetBrains 發佈的最新播放器,該公司也是 IntelliJ、PyCharm 和 WebStorm 等工具的幕後公司。
In my opinion, the best IDEs in the world.
在我看來,這是世界上最好的集成開發環境。
It uses the Kotlin programming language, which is a modern language inspired by Java.
它使用 Kotlin 編程語言,這是一種受 Java 啟發的現代語言。
Apps like McDonald's, Netflix, and Cash App are built with Kotlin Multiplatform.
麥當勞、Netflix 和 Cash App 等應用程序都是使用 Kotlin Multiplatform 構建的。
Finally, we have MAUI, which stands for .NET Multiplatform App UI.
最後,我們還有 MAUI,它代表 .NET 多平臺應用程序用戶界面。
Introduced by Microsoft, MAUI allows you to build native mobile and desktop apps using C Sharp and .NET.
由微軟推出的 MAUI 允許您使用 C Sharp 和 .NET 構建在地移動和桌面應用程序。
These days, most companies prefer to use multiplatform development to reduce their costs.
如今,大多數公司都傾向於使用多平臺開發來降低成本。
This means we can rule out native development for now and focus on cross-platform options.
這意味著我們可以暫時排除本機開發,而專注於跨平臺選項。
Now, which framework is the best?
現在,哪個框架最好?
Well, there is no such a thing as the best framework.
沒有最好的框架。
Yes, there are people out there like our superstar, highly opinionated developer, Mr. John Smith, who swears by React Native, but there are others with a different opinion.
是的,有些人就像我們的超級明星、極富主見的開發人員 John Smith 先生一樣,對 React Native 信誓旦旦,但也有些人持不同意見。
The reality is that neither of these frameworks is perfect.
現實情況是,這兩個框架都不完美。
Each has its own problems and quirks that you'll discover once you start building real applications beyond YouTube tutorials.
每種軟件都有自己的問題和怪癖,當你開始構建真正的應用程序時,你就會發現這些問題和怪癖並不侷限於 YouTube 教程。
And the reason for that is that they try to support two entirely different platforms at the same time.
究其原因,是他們試圖同時支持兩個完全不同的平臺。
So which cross-platform solution should you choose?
那麼,您應該選擇哪種跨平臺解決方案呢?
Well, it depends on two things.
這取決於兩點。
First, on what languages and technologies you're familiar with.
首先,你熟悉哪些語言和技術。
For example, if you're a C Sharp developer, MAUI might be the easier route.
例如,如果您是 C Sharp 開發人員,MAUI 可能是更簡單的途徑。
If you know web technologies like JavaScript and React, you might want to go for React Native.
如果你瞭解 JavaScript 和 React 等網絡技術,你可能會選擇 React Native。
It's an easier transition from web to mobile development.
從網絡開發過渡到移動開發更容易。
The other factor is job opportunities.
另一個因素是就業機會。
There are often more jobs available for React Native and Flutter.
React Native 和 Flutter 通常有更多的工作機會。
Here you can see the number of open positions for different types of mobile app developers in the US.
在這裡,您可以看到美國不同類型移動應用開發人員的空缺職位數量。
Now, this is the current situation here and may be different where you live.
現在,這是這裡的現狀,在你居住的地方可能會有所不同。
Maybe there are more job opportunities for a Flutter developer.
也許 Flutter 開發人員有更多的工作機會。
So I recommend doing your own research rather than taking my or someone else's advice about which route to choose.
是以,我建議您自己進行研究,而不是聽從我或其他人的建議選擇哪條路線。
But realistically, if you're looking for a career in mobile development, you would have to choose between React Native and Flutter.
但實際上,如果你想從事移動開發,就必須在 React Native 和 Flutter 之間做出選擇。
If you have basic web development skills, React Native is a better route.
如果您具備基本的網絡開發技能,React Native 是更好的選擇。
Otherwise, I would recommend Flutter because Dart, which is the programming language that Flutter uses, is a nicer language to work with than JavaScript.
否則,我會推薦 Flutter,因為 Flutter 使用的編程語言 Dart 是一種比 JavaScript 更好用的語言。
It's more modern and doesn't have the quirks and weird parts you find in JavaScript.
它更加現代化,沒有 JavaScript 中的怪癖和奇怪之處。
So decide between JavaScript or Dart and commit to a study plan.
是以,請在 JavaScript 或 Dart 之間做出選擇,並制定學習計劃。
I believe if you dedicate three to five hours every day, you can learn the essence of either of these languages in about two months.
我相信,如果你每天拿出三到五個小時,大約兩個月就能掌握這兩種語言的精髓。
To help you on this journey, I've created a free supplementary PDF that breaks down the specific concepts you need to learn for each skill.
為了在學習過程中提供幫助,我製作了一份免費的補充 PDF 文件,對每種技能需要學習的具體概念進行了細分。
It also includes several project ideas to help you practice and apply what you have learned.
它還包括幾個項目創意,幫助你實踐和應用所學知識。
It's a great resource to review your progress, find gaps in your knowledge, and prepare for interviews.
這是一個很好的資源,可用於回顧自己的進步、查找知識差距以及準備面試。
You can find the link in the description box.
您可以在描述框中找到鏈接。
By the way, I have a bunch of tutorials on this channel and complete courses on my website if you are looking for structured learning.
順便說一下,我在這個頻道上有很多教程,如果你想有系統地學習,我的網站上也有完整的課程。
Again, links are in the description box.
同樣,鏈接在說明框中。
The next thing you need to learn is a version control system like Git.
接下來需要學習的是版本控制系統,如 Git。
Git is not a programming language.
Git 不是編程語言。
It's a tool we use to track changes to our code and collaborate with others.
它是我們用來跟蹤代碼更改和與他人協作的工具。
Git and GitHub, which is a platform that hosts Git repositories, are essential for every developer.
Git 和 GitHub(一個託管 Git 倉庫的平臺)是每個開發人員必不可少的工具。
Now, Git has a ton of features, but you don't need to know them all for everyday use.
現在,Git 擁有大量功能,但日常使用時並不需要全部掌握。
Think of it like the 80-20 rule. 80% of the time, you use 20% of Git's features.
就像 80-20 規則一樣。在 80% 的時間裡,你會用到 Git 20% 的功能。
One to two weeks of practice is enough to get up and running.
一到兩週的練習就足以讓你快速上手。
Now, building mobile apps often involves working with data structures and implementing complex algorithms.
現在,構建移動應用程序通常需要處理數據結構和實施複雜的算法。
This is where a lot of self-taught programmers struggle because they try to skip ahead and learn more and more languages and tools without learning the fundamentals of computer science.
這也是很多自學成才的程序員苦苦掙扎的地方,因為他們試圖跳過去,學習越來越多的語言和工具,而不去學習計算機科學的基礎知識。
Data structures and algorithms are critical subjects taught to computer science students, and they are often covered in tech interviews, especially at big companies like Apple, Google, and Microsoft.
數據結構和算法是計算機科學專業學生學習的重要科目,也是技術面試中經常涉及的內容,尤其是在蘋果、谷歌和微軟等大公司。
While you can skip this step and go to the next, as someone who has had the privilege of teaching millions of people, I highly recommend you not to overlook this step.
雖然你可以跳過這一步,進入下一步,但作為一個有幸教過數百萬人的人,我強烈建議你不要忽略這一步。
Otherwise, you're going to feel the pain later in your career.
否則,你會在以後的職業生涯中感到痛苦。
So spend one to two months studying classic data structures and algorithms.
是以,要花一到兩個月的時間學習經典數據結構和算法。
This will give you a strong foundation in programming and problem solving.
這將為你打下編程和解決問題的堅實基礎。
The next thing I would recommend learning, which again, a lot of self-taught developers miss, is design patterns.
接下來,我建議大家學習設計模式,這也是很多自學成才的開發人員所忽略的。
Design patterns are proven solutions to common software design problems.
設計模式是解決常見軟件設計問題的行之有效的方法。
There are 23 classic design patterns documented in the book Design Patterns by the Gang of Four.
四人幫設計模式》一書中記錄了 23 種經典設計模式。
Many of these patterns are used in mobile frameworks, so learning them will give you a deeper understanding of object-oriented design principles and how these mobile frameworks work under the hood.
這些模式中的很多都用於移動框架,是以學習這些模式會讓你更深入地瞭解面向對象的設計原則,以及這些移動框架在引擎蓋下是如何工作的。
Now, I have to tell you, this book is pretty old and written in C++.
現在,我必須告訴你,這本書已經很老了,而且是用 C++ 編寫的。
Honestly, it's a difficult read because many of the examples in the book are dry and not quite relevant to modern software.
老實說,這本書很難讀,因為書中的很多例子都很枯燥,與現代軟件不太相關。
That's why I've created a very hands-on and pragmatic course on this topic, where I use Java and modern examples found in applications we use every day.
是以,我就這一主題開設了一門實踐性很強的實用課程,使用 Java 和我們日常使用的應用程序中的現代示例。
You can see how design patterns are used to solve problems in modern applications.
你可以看到設計模式是如何用於解決現代應用程序中的問題的。
Whether you want to take my course or use a different resource, I believe if you dedicate a few hours every day, you can have a pretty solid understanding of design patterns in about two months.
無論你是想學習我的課程,還是使用其他資源,我相信,如果你每天花上幾個小時,就能在兩個月左右的時間裡對設計模式有一個相當紮實的瞭解。
Alright, the next thing you need to learn is a mobile framework, which we talked about before.
好了,接下來你需要學習的是移動框架,我們之前已經說過了。
For Dart, you should learn Flutter and for JavaScript, you should learn React Native.
對於 Dart,您應該學習 Flutter;對於 JavaScript,您應該學習 React Native。
Assuming you have a solid background in programming, you can learn either of these frameworks in about two months.
如果你有紮實的編程基礎,你可以在兩個月內學會這兩個框架中的任何一個。
So if you dedicate a few hours every day and follow this roadmap, you'll have the necessary knowledge to apply for an entry-level mobile developer job in about 8 to 12 months.
是以,如果你每天抽出幾個小時,按照這個路線圖去做,你就能在 8 到 12 個月內掌握申請初級移動開發人員工作所需的知識。
If you have any questions, please let me know in the comments below.
如果您有任何問題,請在下面的評論中告訴我。
I'll do my best to answer you right here or in my future videos.
我會盡我所能在這裡或我今後的視頻中回答你。
If you enjoyed this video, please give it a like and subscribe for more useful content.
如果您喜歡這段視頻,請點贊並訂閱,以獲取更多有用的內容。