19 日にリリースされた iPhone および iPod touch 用の iOS 13 と watchOS 6 には、これらのシステムのすべての機能を活用するために必要なネイティブ開発ツールXcode 11が追加されています。古いバージョンをお持ちの場合、または単に Apple 環境でプログラミングを学習する機会を提供したい場合は、Mac の App Store にアクセスするだけで、「開発」セクションから無料でダウンロードできます。

この記事では、IDE をさらに改善する最新かつ最も興味深いイノベーションについて説明します。そして、まず最初に指定します。開発 IDE は、おそらくコンピュータ上に存在する最も複雑な専門的なソフトウェアの 1 つであり、近年の Xcode は無数の異なるタスクを引き受け、Xcode を最も完成度の高い統合開発環境 (つまり IDE) の 1 つとしてきました。存在する。そしてはい、それは完璧ではありません。はい、欠陥があります。複雑さを考慮すると、問題のない IDE はありません。

Xcode 11 の新機能

しかし、これは私の個人的な意見ですが、私は 35 年間、プログラムできるものはほとんどすべて (パンチカードも含めて) プログラムしてきました。私は最もよく知られた IDE と開発環境をテキスト モードまたはグラフィック モードで使用してきました。ほぼすべてです。そして、これは私の個人的な意見であり、誰も同意するつもりはありませんが、私にとって Xcode は最も完成度の高い開発ツールであり、これまで使用した開発ツールの中で最も快適であると言わざるを得ません。そして今年はさらに改良され、さらに完成度が高まりました。

そうは言っても、組み込まれている新機能について説明しましょう。

XcodeとSwiftUI

今年の Xcode 11 には 2 つの速度があります。 macOS Mojave で高速化を実現。ただし、ターボについては、macOS Catalina のリリースまでまだ数週間待たなければなりません。そして、私たちは何に気づくのでしょうか?このバージョンの主役の 1 つであるライブラリ内: SwiftUI

Apple コーディングポッドキャスト (すでに購読していますよね?) から、私は約 2 年にわたって、Apple 環境でのアプリ開発は変わるべきだという考えを擁護してきました。なぜなら?なぜなら、2014 年 6 月に登場した Swift は、第 1 レベルのプログラミング言語として絶対的な成熟を遂げつつありました (実際、今年の Swift 5.1 でそれを達成しました) が、現在の UIKit ライブラリを使用したアプリの開発は、言語のレベルに達していないことに常に苦しんでいます。互換性があるのは明らかですが、彼女のために作られたものではありません。 UIKit (およびその Mac に相当する AppKit) のアーキテクチャとシードは、70 年代に Xerox PARC の Alan Kay のチームが開発したものです。 Apple が使用する MVC アーキテクチャはそこで作成されました。

SwiftUI

しかし今年、Craig Federighi 氏が WWDC のステージで SwiftUI を一般公開した際に、その鍵を私たちに教えてくれました。彼は、言語としての Swift の真の革命が、アプリを作成するために新しいものをゼロから作成した瞬間である理由を短い言葉で説明しました。

プログラミング言語のプラットフォームの移行は、通常 20 年または 30 年ごとに起こります。 C と Objective-C は 70 年代から 80 年代に作成され、Swift はわずか 5 年前にリリースされました。そして彼が達成した強さは信じられないほどです。 App Store の 450,000 以上のアプリがすでに Swift を使用しており、開発者は Swift を気に入っています。しかし、ご存知のとおり、新しい言語は新しいパラダイムとそれに伴う新しいフレームワークを可能にします。 Objective-C は AppKit を可能にし、さらに UIKit を可能にし、開発生産性を桁違いに向上させ、アプリ革命を可能にしました。 Swift を導入したときの最初のステップは、開発者がこれらの優れたフレームワークにアクセスできるようにし、言語の速度と表現力の利点を活用できるようにすることでした。しかし、もちろん、最大のメリットはまだこれからです。開発機能の真の前進は、新しいフレームワークを作成したときにのみ実現します。 Swift が提供するすべての機能を最大限に活用するために、最初から作成されました。本日、その新しいフレームワークを発表します。 SwiftUIといいます。

したがって、この新しいバージョン 11 の主役の 1 つは SwiftUI です。SwiftUI は、Flutter や React Native などの他のライブラリと非常によく似た宣言型開発ライブラリであり、Apple はアプリの開発方法に 180 度の転換をもたらすために、より多くの最新の開発アーキテクチャを適用しています。を開発し、コードを大幅に減らし、より直感的にアプリを作成するための、より実用的、高速かつ強力な方法を作成します。

新しいプロジェクトを作成すると、プロジェクトの構成方法が若干変更されるため、開発に Storyboard (現在のプロジェクト) を介してアプリ構造を使用するか、SwiftUI を使用してアプリ構造を使用するかをテンプレートで尋ねられます。

macOS Mojave で SwiftUI を使用する場合、結果を確認するにはデバイスまたはシミュレーターでアプリを実行する必要があります。しかし、すでに macOS Catalina を持っている場合は、左側にコードが表示され、右側にこれを作成するときに変更されるインターフェイスが表示される、独自の対話型環境が得られます。さらに、インターフェイスの要素とその修飾子をドラッグ アンド ドロップできるコントロールを追加します。これらをコード上にドロップするとインターフェイスが変更され、インターフェイス上にドロップするとコードが変更されます。非常に興味深いワークフローで、アプリを実行モード (より正確にはそれぞれ別の画面またはモジュール) にして、シミュレーターやデバイスで明示的に実行せずにアプリを直接操作することもできます。

SwiftUIライブコーディング

このモードでは、デバイス上でのリアルタイム実行も可能になります。したがって、iPhone または iPad を開くと、インターフェイスがそのまま表示される直接開発モードになり、変更を加えると、アプリを再度実行することなくリアルタイムで更新されます。非常に興味深いモードで、(まだ少し不安定ではありますが) 停止して継続的にテストする作業が容易になります。

SwiftUI を使用したこの対話型の方法が Catalina に限定されているのはなぜですか? Swift 5.1 と同様に、ライブラリはオペレーティング システム自体にロードされるためです。 Mojave には存在しないこれらのコンポーネントを使用するため、最新バージョンの macOS が必要になりますが、10 月にリリースされるかはまだわかりません。ただし、 Mojave を使用すると、 SwiftUI での作業をサポートする Playground タイプのプロジェクトでいつでも作業でき、プロトタイプを作成することもできます

コードエディタの改善

最後のバージョン 10 では、 Xcode には、マルチ編集、コード リファクタリングの改善、その他の非常に興味深い機能など、多数の新機能が追加されました

Xcode 11 では、生産性を高めるために多くのユーザーのアドバイスに従ってそのプロセスが改良され、たとえば、コード制御のバージョン履歴がウィンドウ内に表示されなくなり、ユーティリティの右側のバーに組み込まれました。この変更を行うことにより、標準やウィザードなどのさまざまなエディター モードが、各ウィンドウに存在する新しいオプションに組み込まれました。これにより、エディターの独立した各ウィンドウを好みに合わせてカスタマイズし、残りのウィンドウを強制することなく必要なものを表示できるようになります

新しい Xcode 11 メニュー バー

エディター構成を開くと、これのみを表示するか、現在のコードに対応するキャンバスに参加するか、クラシック エディターとアシスタント ビューを表示するかを選択できます。また、レイアウトを変更し、コードの変更の作成者、単体テストの対象範囲、コードがどのように構成されているか、各メソッドやプロパティへのショートカットを確認できるコードの新しいミニマップなどのコンポーネントを削除または追加します。各ファイル(またはブランド)。他の編集ソリューションがすでに備えていた、非常に実用的な移動方法です。

Xcode11 ミニマップ

エクスペリエンスをさらに流動的にするために、異なるファイル間を移動するときに、パネル構成に適用できないファイルがある場合、そのファイルは表示されません。エディターモードボタンの右側には、ウィンドウを分割して新規エディターを作成できるボタンが組み込まれています。各ウィンドウは独立しており、ミニマップや作成者を配置したい場合は、さまざまな構成に対応します

Xcode 11のさまざまなコードエディター

「エディターの追加」ボタンをクリックするときにOption (Alt) キーを押すと、ボタンの方向が変わり、エディターを垂直に追加できるようになります。このキーを持つファイルをクリックすると、新しいオプションが表示され、エディターを追加または新しく選択したファイルに置き換えることができます。特定のエディターのコンテンツを表示したい場合は、それを最大化すると、ウィンドウを復元するときに、使用した別のエディターの構成に戻ります。

ミニマップは、コードの構造を一目で確認できるようにする優れた追加機能です。コード コントロールに登録されているブレークポイントや変更などの重要な情報にマークを付けます。また、 // MARK:これらは読みやすいテキストとして表示されるため、ミニマップをクリックするだけでそのポイントに直接移動できます。チェーンを検索すると、そのブランドがミニマップにも表示されます。

新しい Xcode 11 エディター

もう 1 つの興味深い変更は、最小限ではありますが、コードに追加したコメントやドキュメントが異なるフォントで表示されることです。また、間違った名前を入力してコードのどこかで間違いを犯した場合でも、名前を変更できます。現在の参照をすべて探してコード全体で名前が変更されるだけでなく、ドキュメント内でも変更されます。

Swiftパッケージマネージャー

Xcode 11 にもう 1 つの非常に重要な新機能があるとすれば、それは独自の依存関係マネージャーである Swift Package Manager の組み込みです。 Apple の任意のプラットフォームの Swift にサードパーティのパッケージを組み込むことができるマネージャー。 GitHub、BitBucket、GitLab などのリポジトリ サービスと統合されます。

これまで最も使用されてきたソリューションは、Cocoapods などのサードパーティ製のソリューションでしたが、Xcode に統合されていないため、プロジェクトをあまりにも「汚して」しまいました (私の意見では)。ただし、 Swift Package Manager は、テキスト ファイルを編集したり、ライブラリのバージョンを争ったりする必要がなく、クリーンでエレガントで管理が簡単な統合を提供します。プロジェクト設定にアクセスするだけで、新しい Swift Packages タブが表示されます。

Xcode 11 Swift パッケージマネージャー

+ をクリックすると、コード リポジトリ サービスが設定されている場合、すべてのパッケージが表示されます。さらに、インストールする別のパッケージへの直接 URL を置くこともできます。選択すると、インストールする特定のバージョンまたは最小バージョンブランチ、またはそのコミットを選択できるようになります。パッケージを選択したら、それを追加するターゲットを指定するだけです。

新しい依存関係セクションにパッケージとそのすべての内容が表示されます。必要なファイルに単純にimportだけで、上記のライブラリのモジュールを追加し、作業できるようになります。パッケージは、それ以上の変更や変更、ワークスペースの使用なしで、別の要素としてプロジェクトに組み込まれ、その範囲内で検索することもできます。私たちが常に望んでいた、そしてそれが実現するまでに長い時間がかかりましたが、ついに私たちの中に、クリーンで快適な統合が実現しました。

その他の変更点

このバージョンでは、ワークフローを改善するその他の小さな変更が加えられています。たとえば、コード コントロールは、作業を「一時停止」する方法であるstash をネイティブにサポートするようになりました。別のブランチに変更したり、特定のバージョンに戻ったりして、作業ディレクトリ内の何かを変更する必要があるが、今やっていることを失いたくないが、コミットもしたくない場合は、スタッシュを作成することで次のことが可能になります。私たちの仕事は一時的に保存しておいて、必要なときに彼に戻ることができます。これまでは Xcode で直接実行できず、他のサードパーティ ソフトウェアを使用する必要があった機能です。さらに、バージョン履歴は、コードだけでなく、あらゆる種類のファイルでも非常にうまく機能します。

デザイン モードでダーク モードまたはライト モードでプレイしたり、Catalyst を使用するときに Storyboard 内に Mac を入れたり、リソース カタログを見つけてさまざまな言語にさまざまな画像を提供したりできます。実際、ダーク モードは非常に統合されており、最近説明した記事ですでに見たように、モードごとに特定の画像や色を選択できます。

Xcode 11のビジュアルオプション

細かいことはたくさんありますが、完成する前に、Apple が追加した新しいシンボルについて特筆に値します。サンフランシスコのシンボルです。グラフィックスとベクター タイポグラフィの両方として機能する、さまざまなタイプの外観を持つ 1,500 を超えるシンボルのセット。こうすることで、封筒、錠前​​、人のシルエットなどの基本的なアイコンや、タスク バー、ボタン、その他の要素に必要なその他のグリフを探す必要がなくなります。独自のシンボルを作成することもできます。サイズや暗いまたは明るい外観に自動的に適応します。そして、ビジュアル環境にいるときは、ビジュアル オプションを変更して、インターフェイスがどのように反応するか、恐ろしい制約が正しく適用されているかどうかをテストできます。

そして、最も称賛されるべき最新の改善点の 1 つは、最終的に、パフォーマンス レベルで何かをテストするときにシミュレータが苦痛ではなくなることです。起動が 2 倍速くなっただけでなく、アプリを 1 秒あたり 60 枚の画像で表示できるようになり、以前のバージョンよりも 90% 速くなりました。主な理由は、改良に加えて、シミュレーターが表示するすべてのグラフィックスで Metal をサポートするようになり、シミュレーター自体でビデオ ゲームをテストする場合でも、信じられないほどのグラフィック パフォーマンスで一歩前進することができるためです。

Xcode 11、進化の確立

私はバージョン 3.2 から Xcode を使用していますが、その頃はまだ 2 つの異なるアプリがあり、 1 つはコード用、もう 1 つは画面を作成するためのアプリ (Interface Builder)でした。私はそれぞれのバージョンを調べてきましたが、革命的なものもあれば、大きな小さな惨事となったものもありました。 Xcode はエラーが多いという評判を得ていますが、それを否定するつもりはありません。しかし、近年Apple がそれを改善し、磨きをかけ、新たな可能性を与えているという素晴らしい仕事をしていることも否定できません。バージョン 10 と今回の 11 の両方で、非常に安定したプロフェッショナルなプログラムと、何時間も問題なく作業できるツールを手に入れたと言えます。彼らにそれを私に話させてください。

Xcode11

完璧ではなく、IDE も完璧ではありませんが、このバージョン 11 の Xcode は非常に安定した優れたバージョンであり、これを使用して、私たちが作成できる最高のアプリをプログラミングして作成することができます。常にネイティブ開発で。あるいは、Xcode 11 とも互換性のあるサーバーサイド Swift などの新機能も含まれています。ダウンロードして楽しむだけです。もちろん、時間をかけてアップデートまたはインストールしてください。コーヒー何杯分でも十分です。

Xcode 11 が利用可能になりました: これらはすべてその新機能です・関連動画