字幕表 動画を再生する
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.
モバイルアプリを作るには、基本的にネイティブかクロスプラットフォームの2つの方法がある。
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.
つまり、2つの別々のプロジェクトがあり、修正すべきバグも2セットあるということだ。
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.
まずは、2015年にフェイスブックが発表したリアクト・ネイティブだ。
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.
リアクト・ネイティブを使用している大手企業には、マイクロソフト・オフィス、スカイプ、そしてフェイスブック自身が含まれる。
Then we have Flutter, which is a Google product that came out in 2017.
そして、2017年に登場したグーグルの製品「Flutter」がある。
Flutter uses a programming language called Dart, which takes the best parts of JavaScript, Java, and C Sharp.
Flutterは、JavaScript、Java、C Sharpの良いところを取り入れたDartというプログラミング言語を使っている。
Some examples of apps built with Flutter are eBay, Alibaba, and Google Pay.
Flutterで作られたアプリの例としては、eBay、Alibaba、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.
これは、IntelliJ、PyCharm、WebStormなどのツールを開発しているJetBrainsがリリースした最新のプレイヤーだ。
In my opinion, the best IDEs in the world.
私の考えでは、世界最高のIDEだ。
It uses the Kotlin programming language, which is a modern language inspired by Java.
Javaにインスパイアされたモダンな言語であるKotlinプログラミング言語を使用している。
Apps like McDonald's, Netflix, and Cash App are built with Kotlin Multiplatform.
マクドナルド、ネットフリックス、キャッシュアプリなどのアプリは、Kotlinマルチプラットフォームで構築されている。
Finally, we have MAUI, which stands for .NET Multiplatform App UI.
最後に、.NET Multiplatform App UIの略であるMAUIがある。
Introduced by Microsoft, MAUI allows you to build native mobile and desktop apps using C Sharp and .NET.
マイクロソフトによって導入されたMAUIは、Cシャープと.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.
そう、我々のスーパースターであり、高い意見を持つ開発者であるジョン・スミス氏のように、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.
その理由は、まったく異なる2つのプラットフォームを同時にサポートしようとするからだ。
So which cross-platform solution should you choose?
では、どのクロスプラットフォーム・ソリューションを選ぶべきか?
Well, it depends on two things.
まあ、それは2つのことによる。
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シャープの開発者なら、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.
毎日3時間から5時間を費やせば、2ヶ月程度でどちらの言語のエッセンスも習得できると思う。
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.
立ち上がるには1~2週間の練習で十分だ。
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.
そのため、古典的なデータ構造とアルゴリズムを1~2カ月かけて勉強する。
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.
4人組によるデザイン・パターンという本には、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.
私のコースを受講するにしても、他のリソースを利用するにしても、毎日数時間を費やせば、2ヶ月程度でデザインパターンをかなりしっかりと理解できるようになると思う。
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.
プログラミングのしっかりしたバックグラウンドがあると仮定すれば、これらのフレームワークのどちらかを2ヶ月程度で学ぶことができる。
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.
このビデオを楽しんでいただけたなら、ぜひ「いいね!」をお願いします。