ホームページ >ウェブフロントエンド >フロントエンドQ&A >Web開発はモバイル開発に移行しました。これが私が行った方法です。
私は PHP を使用する Web 開発者として専門的な開発キャリアをスタートしました。その後すぐに、.NET エコシステムに切り替え、C# と ASP .NET MVC フレームワークを使用して Web 開発を続けました。最近まで、私が作成したのは Web アプリだけでした...
数か月前、Android と iOS でモバイル アプリの開発を始めましたが、Xamarin のおかげで、今でも C# を使用できます。この記事を書いた理由は、この変更を行った後に感じたことを共有するためです。
なぜこの決断をしたのか
なぜウェブ開発からモバイル開発に切り替えることにしたのかと疑問に思うかもしれません。 Web プログラミングについてはまだ学ぶことがたくさんありますが、何か新しいことをして新しいスキルを学びたいと思っているからです。
オンラインストアにはすでにたくさんのアプリがありますが、モバイルアプリには明るい未来があると思います。ただし、スマート ウォッチなどの新しいモバイル デバイスが登場しており、開発者にとっては新たな機会となります。これは、モバイル デバイス用のアプリケーションの作成方法を学ぶ絶好の機会です。
もちろん、私が現在働いている会社では、たまたま私の好きな言語 (C#) を使って新しい Android および iOS アプリケーションを開発する機会があるので、この機会を利用してみてはいかがでしょうか。
新しいプログラミングモデル
これは私が以前経験し、モバイルアプリケーションの開発に参加したWindows Phoneというプロジェクトから学びました。しかし、私はこれからやろうとしていることに対する準備ができていなかったし、なれるとは思っていませんでした。
特定のライフサイクルを持つ Web サイト内のアプリケーションとは異なり、リクエストに応答するだけでは済みません。 Web アプリケーションの構築について学んだほとんどすべてが役に立ちません。パラダイムはまったく新しいものです。
すべてがユーザー インターフェイス (UI) スレッドで実行されるとアプリケーションが停止するため、この分野では非同期プログラミングが必須です。私は常にこの分野のスキルを向上させたいと思っており、この目標を達成するための素晴らしい方法を見つけました。
関心の分離も異なります。Model View Controller (MVC) はなくなりましたが、Model View ViewModel (MVVM) パターンが使用されます。 (WPF と Windows Phone で) 使用したことはありますが、同じレベルではなく、まだ学ぶことがたくさんあります。
もちろん、アプリケーションをテストするにはシミュレーターを使用する必要があります。テストするたびに、ページを更新して変更を確認することはできません。フィードバック ループは長く、ほとんどの場合は数分かかるため、デバッグには時間がかかり、重要になります。
快適ゾーンから抜け出しましょう
私は約 2 か月前にアプリの開発を始めましたが、学ぶべきことがまだたくさんあります。私は、経験のない 2 つのエコシステム (Android と iOS)、まったく知らない 2 つのフレームワーク (Xamarin と MvvmCross)、そして満たすのが難しいいくつかのビジネス要件に対処する必要がありました。ただし幸いなことに、少なくとも私は C# の使い方を知っています。
今、私は検討すべきことがたくさんありますが、主なものは新しい開発環境に関連するいくつかの「どうやって行うか」という問題です。また、「ネットワークが利用できない場合はどうすればよいですか?」、「このソリューションが遅すぎる場合はどうすればよいですか?」、「顧客に最高のエクスペリエンスを提供するにはどうすればよいですか?」など、「もしも?」という質問もたくさんあります。一日中何も生み出せないこともあります。正直に言うと、その時は自分が本当に役に立たない、詐欺師だと感じます。仕事で価値のあるものを何も生み出すことができないのに、自分自身をどのように考えることができますか。プロのソフトウェア開発者ですか?
そうですね、この感覚は、快適ゾーンから抜け出して、学習段階の山と谷にいるようなものだと思います。
山あり谷ありの学習率
諦めないでください
しかし、移行しているのは私だけではありません。この戦いに参加しているのは私だけではありません。上級開発者も若手開発者も、チームの全員が同じ量の学習に直面しなければなりません。
ここ 2 か月間の自分の旅を振り返ってみると、自分にはまださまざまな欠点があり、進むべき道はたくさんあることに気づきましたが、同時に非同期プログラミングに関する現在の理解や、これらの MVVM パターンの概念は比較的よく知られています。
プロのモバイル開発者になりたいのであれば、引き続き学習を続け、旅を完遂し続け、自分に足りないスキルを学び、顧客の期待に応える価値を生み出す必要があります。仕事のせいで時々惨めな思いをすることもありますが、素晴らしい学習の機会なので後悔はしていません。どれだけ時間がかかっても、私は成功します。