Apple の新しい Swift プログラミング言語が利用可能になってからまだ数か月しか経っていませんが、American Airlines、Getty Images、LinkedIn、Duolingo の iOS および OS X 開発者は、生産性の向上から出荷アプリのバグの減少に至るまで、好印象を報告しています。新しい言語は急速に加速します。
Swift は、昨年 6 月に Apple の Worldwide Developer Conference で初めて導入され、9 月に iOS 8 および OS X Yosemite とともに出荷されました。統合するChris Lattner の LLVM コンパイラを使用します。 Swift は、コード作成を加速し、最新のプログラミング概念を導入し、アプリのクラッシュにつながる可能性のある一般的なエラーを防ぐことを目的としています。
Appleのティム・クック最高経営責任者(CEO)は先週、「当社の新しいプログラミング言語であるSwiftに対する反応には驚かされている」と述べた。 「新しいプログラミング言語を発明することは、非常に少数の企業ができることであり、それが私たちのエコシステムに大きな影響を与えると私たちは信じています。」「新しいプログラミング言語の発明は、非常に少数の企業ができることであり、それが私たちのエコシステムに大きな影響を与えると信じています。」 - ティム・クック
新しいプログラミング言語を作成するのは野心的な取り組みですが、開発者の間で急速に採用されるようにすることも困難な課題です。 Apple は、iOS および OS X プラットフォームの所有者として Swift の採用を促進および奨励する独自の能力に加えて、Swift は、設計上、既存の Objective-C コードと一緒に既存の開発プロジェクトに簡単に組み込めるように設計されています。
Swift に対する開発者の関心を惹きつける主な要因は、Objective-C と比較して、新しいプログラマが採用しやすく、すぐに生産性を向上できることです。これは、Rust、Haskell、Ruby、Python、C#、CLU などの既存の言語から借用した要素の一部に由来します。
アップルは無料Swift 上の iBookは新しい言語を「スクリプト言語と同じくらい表現力豊かで楽しい、初の工業品質のシステム プログラミング言語」と呼んでいます。
同社は新しい言語のパフォーマンスも強調しており、注目する一般的な検索アルゴリズムを実装した Swift コードは、Objective-C よりも 2.6 倍、または Python で書かれた同等のコードよりも最大 8.4 倍高速に実行できます。
開発者が Swift に群がる
クック氏はまた、「Swift は Xcode ツールの一部として 9 月に利用可能になり、最初の 1 か月でこれらのツールは 1,100 万回以上ダウンロードされました。RedMonk からの最近のレポートによると、Swift は前例のない成長を遂げており、急速にそのリストに上がっています。」最も人気のあるプログラミング言語。
「私たちは、多くの開発者が重要な新しいプロジェクトを構築する際に Swift を選択するのを見てきました。また、教育現場で Swift を使用した素晴らしい取り組みが行われているのを目にしています。つい最近、スタンフォード大学がSwift を使用した iOS 8 アプリの開発このコースは iTunes University に投稿され、この素晴らしいリソースを世界中の誰もが利用できるようになりました。」
として報告されましたRedMonk が 1 月中旬に発表したところによると、Apple の Swift の採用は「本質的に前例のない」もので、わずか 5 か月で人気のあるプログラミング言語のトップ 25 に入りました。これは、Google の Go 言語が達成するのに 5 年近くかかった偉業です。さまざまな海外の大学や専門学校がすでに Swift をコースに取り入れています
今後のスウィフトの人気をさらに高めるのは、ドイツのミュンヘン工科大学からメキシコのモンテレイ工科大学、フランスのイングサップ、アベリストウィス大学、プリマス大学に至るまで、さまざまな国際的な大学や専門学校がすでにコースにスウィフトを取り入れているという事実です。イギリスとオーストラリアのRMIT大学。
Appleの裏庭にあるスタンフォード大学に加えて、カリフォルニア工科大学、サンルイスオビスポのクエスタ大学、カリフォルニア大学サンタクルーズ校、フィラデルフィアのドレクセル大学、北西部オーランド近くのフルセイル大学など、他の一連のアメリカのキャンパスでもSwiftを教えている。カンザス工科大学、ミズーリ大学、ダラスのサザンメソジスト大学。
Getty Images の Stream 内での Swift 導入
ゲッティイメージズのアプリケーション開発マネージャー、ラファエル・ミラー氏はこう語った。AppleInsider彼が最初に Swift を使い始めたのは WWDC で、2 日間のハッカソンに参加しました。その結果、ストリーム、iOS および OS X 用の新しいアプリで、ユーザーはゲッティ イメージズのポートフォリオからプロの写真を検索、参照、共有できます。
Miller 氏は、Objective-C の経験がある上級開発者はすぐに Swift を使い始めることができますが、この新しい言語は、通常 C# で 1 ~ 2 年の経験があるか、大学で Java を教えたばかりの若手開発者にとって特に使いやすいと指摘しました。 Ruby に慣れている Web 開発者は、あまり一般的ではない Objective-C の構文とは対照的に、Swift をすぐに使いこなすようです。
これらの新しい開発者にとって、Swift を使用すると、Apple プラットフォームのデフォルトのプログラミング言語の学習が容易になり、Mac Cocoa または iOS Cocoa Touch API を理解して理解することに集中できるようになるとミラー氏は述べています。
同氏は、Swift が言語として「非常にパフォーマンスが高い」と説明しましたが、主な利点は開発者の生産性に関連していると指摘しました。 Objective-C の冗長さとは対照的に、Swift の簡潔さにより、「より少ないコードでより多くのことを実行」でき、「ありふれた作業をより速く」完了できます。そのため、Ruby 開発者にとって特に魅力的であり、その結果「記述が少なくなり、より多くの構築が可能になる」と同氏は述べた。 Ruby は、新しい概念を迅速にプロトタイプ化するためによく使用されます。
開発者の生産性におけるSwiftの優位性は、開発者が新機能やその他の具体的な機能強化によってアプリを最新の状態に保とうとしている消費者分野で特に重要であるとミラー氏は指摘した。 Swift を使用すると、開発者は「迅速に機能を追加」できるため、新しい機能を求めるユーザーのリクエストに迅速に応答しながら、革新的な反復が可能になります。
また、Swift では一般的なエラーのあるコードをコンパイルすることもできないため、「何か間違ったことをしているときに早い段階で知ることができます」とミラー氏は述べています。開発者は「コードを入力しているときに、これが機能しない理由が通知される」ため、欠陥のあるコードのコンパイルに費やす時間を節約できます。
Miller 氏は、Swift の最初のベータ版は「かなり未加工」だったが、それ以降は「リリースごとに改善されている」と述べました。コンパイラの問題や、Objective-C と Swift の混合に関連するいくつかの問題に関連する「Xcode のクラッシュはまだいくつかある」ものの、完全に Swift で書かれた Stream の成功により、彼のチームは「Xcode の変換を開始する準備ができている」とミラー氏は述べました。すべてのアプリを Swift に」というもので、完全な Getty Images アプリは、50 ~ 60% の Swift コードに到達するという短期的な目標を掲げています。
ゲッティイメージズはAndroidアプリの開発は行っておらず、ミラー氏は近い将来にクロスプラットフォームの計画はないため、Swiftへの投資は移植性の問題に制約されないと述べた。しかし同氏は、モバイルチームが運営するSwiftワークショップが、MicrosoftのC#を使用するバックエンドAPIコーダーやRubyに精通したWeb開発者など、社内の他の開発者の注目を集めているとも指摘した。
特にモバイル開発全般への関心を考えると、スウィフトには「人々が我々のドアを叩いている」とミラー氏は語った。また、Objective-C のとっつきにくい構文とは異なり、Swift は親しみやすいため、スキルセットをモバイル アプリに拡張することに関心を持つ既存の開発者が「構文的に怖がらない」ことを意味します。
Swiftに関連して今後Appleに何を期待したいかと尋ねると、Miller氏は「これが一般的な問題であり、SwiftとObjectiveでそれをどのように行うかを示す、より多くのサンプルコードが見られるとうれしい」と述べた。 -C」と、さまざまなタスクに Swift を使用する場合の費用便益分析の概要を示します。
「Objective-C は長い間存在しており、ベスト プラクティスはすでに存在しています」と Miller 氏は述べています。 Swift の場合、利用可能なベスト プラクティス アーキテクチャは少なく、理想的には、Swift を最も効果的に使用する方法に関する最良の洞察は、「設計者から」得られるものです。
アメリカン航空でスウィフトが離陸
AppleInsider管理者のフィリップ・イースター氏とも話した。アメリカン航空モバイルアプリ、そして同社のiOS開発者マット・クロスターマン氏。 Easter氏は、American社が「モバイル分野で進歩的であり続けることを目指しており、開発サイクルを改善する方法とプラットフォームの改善を模索している」と述べ、「AppleがSwiftで行っていることは素晴らしい追加だ」と付け加えた。
同氏は、Swift の具体的なメリットには、保守が容易になる高品質のコードと関連するパフォーマンスの向上が含まれると指摘し、American 社は「今後も確実に Swift を採用する」と述べた。
ただし、大規模な既存のコード ベースを持つネイティブ ショップとしては、Objective-C から Swift にコードを移植するだけでは、Swift で新しい機能や拡張機能を構築できることに比べて魅力が劣ります。 Apple は、既存のプロジェクトに Swift を導入するためのこのような段階的なアプローチを比較的簡単に採用できるようにしました。
クロスターマン氏は、WWDC直後からSwiftの調査を開始し、同社の既存アプリの「新機能にSwiftを使用する機会を捉えたアプローチ」を開発したと述べた。ただし、American の開発者が iOS 8 の展開で考慮する必要があったプラットフォーム関連の変更は、新機能を迅速に追加する方法として Swift を採用することだけではありません。
iOS 8 では、次のサポートも導入されました。適応型ユーザーインターフェイスこれにより、開発者は新しいデバイスのフォームファクタで動作するようにアプリを柔軟に適応させることができます。Apple は、iPhone 6 と iPhone 6 Plus のより大きな画面とより高い解像度に合わせて、これを提供しました。
この機能により、アメリカン航空は、別々の iPhone アプリと iPad アプリを共通のコード ベースに統合できるようになり、両方のアプリの機能を同等に維持することが容易になり、同時に新機能の作成と追加の機能が大幅に強化されました。これらの新機能の開発に Swift を採用することは、アダプティブ UI のサポートと連携し、開発を加速するだけでなく、既存の Objective-C コードを新しい Swift コードと統合する方法について考える新しい方法も導入します。
ゲッティ イメージズと同様、アメリカン航空も Swift の採用において「漸進的アプローチ」を採用しています。クロスターマン氏も同様に、WWDCでのデビュー以来Swiftが反復的に改善されてきたことを指摘し、「リリースごとに進化している」と述べた。
将来何が起こってほしいかとの質問に対し、同氏は「興味深い方法がある」と述べた後、Objective-CとSwiftは「どちらもしばらくは存在するだろうから、Swiftで相互運用性が向上すれば有益だろう」と述べた。 」 2 つの間の相互運用性が進化する可能性があります。
同時に、Swift は新しく鋳造されたばかりの新しい言語のように見えるにもかかわらず、Easter 氏は、Swift には 4 年間開発されてきた「歴史と血統」があると述べました。 「アップルはその行動において非常に思慮深いことが証明された」と彼は述べた。
昨年の夏、Apple が Swift を導入したのは、新しい Swift の概念的プロトタイピングと同時に行われました。スライドシェアLinkedIn のアプリ。ビジネス専門家間でプレゼンテーションを共有するための Instagram に似た、ビジネス プレゼンテーション、インフォグラフィック、ビデオの共有をホストします。
SlideShareのエンジニアリングマネージャー、Francisco Meza氏は、「我々はちょうど最初の初期プロトタイプを完成させたところだったので、(相互運用性のために必要なObjective-Cの小さな部分を除いて)完全にSwiftで新しいアプリケーションを開発するのに完璧なタイミングでした」と述べた。 SlideShare iOS アプリになります。」
プロダクト マネージャーの Andri Kristinsson 氏は、SlideShare チームは「WWDC で発表された直後に新しい言語を扱うことに非常に興奮しており、アプリの構築を進めながらコツを学ぶことができてとても興奮していました。私たちは開発者コミュニティ全体と緊密に連携しているように感じました」と付け加えました。チームの活動中、当社の開発者はフォーラムやスタック オーバーフローで積極的に学習し、他の人の学習を支援していました」と述べ、「Apple に報告したいくつかの小さな改善点があり、それらはすぐに追加されました。」
Swift のパフォーマンスについて尋ねられたとき、Meza 氏は次のように答えました。「SlideShare のアプリ (Swift) と LinkedIn の主力アプリ (Objective-C) の両方の同様のページのパフォーマンス追跡メトリクスの比較に基づいて、Swift の実行時のパフォーマンスには非常に満足していると言わざるを得ません。 。」
結果として得られるコードの品質と安定性に関して、Kristinsson 氏は、「SlideShare アプリのクラッシュ率は素晴らしく、私たちのチームが以前に開発した他のアプリよりもはるかに優れています」と述べました。
Meza 氏はまた、Swift の学習曲線についても言及し、「それほど急ではなかった。Swift は確かに新しい言語ですが、非常に長い間存在していた他のプログラミング言語からインスピレーションを受け、要素を借用しています。その中には Ruby や Python もあります。」このプロジェクトに取り組んでいる開発者の Ruby に関する高度な専門知識のおかげで、Swift 導入の学習曲線を平坦化することができました。」
同氏はさらに、「これまでSwiftで得た素晴らしい経験を考慮すると、SlideShareは今後もSwiftをiOS開発の選択肢の言語として使用し続けるだろう」と付け加えた。
Meza 氏は、最初の数回のパッチ リリースにはプライベート アクセス修飾子の欠如や、Xcode 構文の強調表示に関する初期の問題など、初期に発生したいくつかの問題を指摘しましたが、これらはいずれもその後解決されたと述べています。
「言語自体に関しては」と彼は付け加えた、「私たちが経験した主な問題は、私たちがそれを使い始めたときにその言語のイディオムがまだ確立されていなかったという事実だったと思います。そのため、Swift での作業を学習するプロセスの一部として、この言語の使用におけるベスト プラクティスに関する独自の規則です。」
Meza 氏はさらに、「私に欠けている主な機能は例外のサポートです。私たちの経験から言えば、この機能を使用するとエラー処理を記述するコードに利点が生じる可能性があります。」と付け加えました。
しかし、彼が述べたように、「Swift を使用することで得られる利点、つまりコードの表現力が向上し、コードの読みやすさと理解が容易になり、コードの保守が容易になること」と比較検討した結果、Swift を使用するという決定は自信を持って言えます。 Objective-C の代わりに、それが私たちにとって適切でした。」
Duolingo は新しい言語を学びます
Swift を使用した新しい開発プロジェクトのもう 1 つの例は、Duolingo です。テストセンター、同社の人気のコンパニオンアプリデュオリンゴ外国語学習アプリ。テスト センターは、監視された時間制限のある試験でユーザーの言語能力を証明することを目的としています。
あブログ投稿同社による「Real World Swift」というタイトルの記事では、Test Center の当初の目標について説明し、「パフォーマンスにあまり敏感なアプリではない」が、クラッシュが発生すると「このような試験アプリのユーザー エクスペリエンスは非常に悪いですが、時間制限のあるスキル テストとしてのデザインも混乱させます。
Duolingo は特定の Swift 機能の詳細な体験を概説しましたが、そのテスト センター アプリは 1 人のプログラマーによって「3 か月強」開発され、ユーザーの手で「クラッシュの数が少ない」という意図された目標を達成できたと結論付けています。人気のダウンロードとして。さらに、同社が追跡したクラッシュのうち、クラッシュ レポートのトリガーの上位 5 件のうち 4 件は、新しい Swift コードではなく、外部の Objective-C ライブラリのコードに関連していました。
同社はアプリの安定性の大部分を「堅実なソフトウェア アーキテクチャと健全なエンジニアリング原則の遵守」によるものだとしているが、「Swift は設計によりあらゆる種類のバグを排除することで、このアーキテクチャを構築し、ベスト プラクティスに従うプロセスを容易にしました。正しくは、たとえば、Swift の型システムを使用すると、本番環境で表面化することなく、開発中のコンパイル時に多数の型エラーを検出して防止できました。」
Duolingo はまた、Swift の初期導入者の問題点をいくつか特定し、「この新しく作られた言語には、最新の型システムを備えた他の言語に見られる表現力の一部が欠けている」と指摘しました。同社はまた、Swiftに対する「最大の不満、そしてフラストレーションの原因は、おそらく言語そのものではなく、それを取り巻くツールだ」とも述べた。
「Xcode (Apple の Objective-C および Swift IDE) は、まだ Swift コードにしっかりと対応していません。アプリの開発中に、IDE が著しく遅くなったり、クラッシュしたりすることがよくありました。ほとんどの場合、コード補完がまったく (または非常に遅く) なかった」と述べられています。現時点では、基本的にデバッガはなく、不安定で信頼性の低い構文強調表示、遅いテキスト エディタ (プロジェクトが一定のサイズに達すると)、さらにリファクタリング ツールもありません。さらに、コンパイラ エラーもよく発生します。理解不能であり、コンパイラのバグや欠落している機能がまだかなりの数あります (たとえば、型推論が時々失敗するなど)。」
同社はさらに、「Xcodeは私たちが始めて以来大幅に改善されているが、それらの点のほとんどは現在でも当てはまり、エクスペリエンスを多少損なう。私たちはAppleが焦点の一部を開発者ツールの改善に移すことを望んでいる。」と付け加えた。
開発者は、Test Center での最初の経験に基づいて、「Swift を使用して、安定した堅牢な大規模な運用アプリを作成できる」と結論付けました。私たちのメイン アプリである Duolingo は、すでにいくつかの Swift コードを使用しています。今後もどんどん使っていきます。」
同社はまた、「すでに Objective-C でアプリを持っている場合、Swift を使用するためだけにそれを最初から書き直すことはおそらく望まないでしょうが、Swift に新しいコンポーネントを追加することを検討してもよいでしょう」と推奨しています。
例として、同社は、Swift で書かれた PDF アセットをレンダリングするアプリ コンポーネントについて説明しました。ラッパー メソッドを使用して、この Swift コンポーネントを既存の Objective-C コードで使用することができました。逆に、同社は「メインアプリの既存の Objective-C コンポーネントの一部をリフトして Swift から使用するのは簡単だった」と述べています。
Swift は Apple Watch、IBM iPad アプリで戦略的な役割を果たします
Swift を Objective-C と相互運用可能にするという Apple の実用的なアプローチは、iOS と Mac の開発者が新しい言語を段階的に採用できるようにし、最初からやり直すことなくすぐにでも取り組めるように取り組んでいるように見えます。 Apple は Swift 自体も幅広く活用しており、次期 Apple Watch 向けに Swift での新規開発をサポートしています。
Swift は、Apple と IBM との最近の提携において、モバイル ビジネス ユーザー向けの新しいクラスの「Mobile Ready」iPad アプリを開発する際にも重要な役割を果たしたと評価されています。去年の夏、クック述べた, 「当社は、世界中の企業顧客に新しいクラスのモバイル ビジネス ソリューションを提供するために、IBM との関係を築きました。当社は協力して、企業がすべての従業員の iPhone または iPad でビッグ データ分析のパワーに直接アクセスできるようにしています。」
「Swift を使用して、私たちは協力して 100 を超える MobileFirst アプリを企業クライアントに提供し、それぞれが特定の業界のニーズや機会に対応します。これは企業にとって抜本的な一歩です。大きな市場機会アップルのために。」