第11章Webアプリケーション開発
The Benefits and Drawbacks Between Native, Web, and Hybrid Mobile Application Developmentネイティブ・Web・ハイブリッドの各モバイルアプリケーション開発の利点と欠点
Native applications have the benefits of accessing device-specific hardware and sensors (e.g., camera, accelerometer), data (e.g., location, contacts), and are optimized for performance.
ネイティブアプリケーションには、端末固有のハードウェアやセンサー(カメラ、加速度計など)、データ(位置情報、連絡先など)にアクセスできる利点があり、性能面でも最適化されている。
However, they have the drawbacks of being device-dependent and available primarily through proprietary app stores (Google Play for Android and Apple’s App Store for iOS). Developers need to learn different languages and libraries for the devices. However, cross-platform development is possible with frameworks (e.g., Flutter, Kotlin Multiplatform Mobile), allowing developers to code in a single language and run solutions on both platforms.
英語のヒント
しかし、端末に依存し、主として専有のアプリストア(AndroidのGoogle Play、iOSのApple App Store)を通じて入手するという欠点がある。開発者は、端末ごとに異なる言語やライブラリを学ぶ必要がある。それでも、FlutterやKotlin Multiplatform Mobileなどのフレームワークを使えば、複数のプラットフォームに対応する開発が可能になる。開発者は1つの言語でコードを書き、両方のプラットフォームで動作させられる。
Web apps can also run in a browser on mobile devices. They have the distinct advantage of responsiveness and can run on various screen sizes—thus allowing for a single codebase that can increase productivity and reduce cost. Disadvantages to web apps on mobile devices are limited access to hardware and software features, lower performance than native apps, and web apps may perform differently depending on the mobile browser. Traditionally, web apps didn’t look like native apps. In 2017, Google introduced Progressive Web Apps for Android, allowing web apps to look and feel similar to native apps.
英語のヒント
Webアプリも、モバイル端末のブラウザー内で実行できる。レスポンシブで、さまざまな画面サイズで動作するという明確な利点がある。そのため、1つのコードベースで対応でき、生産性を高め、費用を減らせる。モバイル端末上のWebアプリの欠点は、ハードウェアやソフトウェアの機能へのアクセスが限られること、ネイティブアプリより性能が低いこと、モバイルブラウザーによって動作が異なる可能性があることである。従来、Webアプリはネイティブアプリのような外観ではなかった。2017年、GoogleはAndroid向けにProgressive Web Appsを導入し、Webアプリでもネイティブアプリに近い見た目や操作感を実現できるようにした。
Finally, hybrid apps are web apps wrapped inside a native device framework (e.g., Apache Cordova). These apps have the advantages of using traditional web application development while accessing and utilizing device functions and running on multiple mobile platforms. The drawbacks are reduced speed and potential security vulnerabilities found in the framework.
英語のヒント
最後に、ハイブリッドアプリは、端末のネイティブフレームワーク(Apache Cordovaなど)の中にWebアプリを包み込んだものである。従来のWebアプリケーション開発を使いながら、端末の機能にアクセスして利用でき、複数のモバイルプラットフォームで動作するという利点がある。欠点は、速度が低下することと、フレームワークにセキュリティ上の脆弱性が潜んでいる可能性があることである。
CONCEPTS IN PRACTICE実践の中の概念
Software Patterns and Frameworksソフトウェアパターンとフレームワーク
As discussed in Chapter 9 Software Engineering and Chapter 10 Enterprise and Solution Architectures Management, architectural styles, architectural patterns, and design patterns are typically used to enforce the quality attributes of software solutions. To facilitate the creation and maintenance of web applications and scalable transactional websites, web application frameworks and native application frameworks that leverage applicable patterns, such as MVC, were created and improved over the past couple of decades. Web frameworks are used within web application frameworks to facilitate the use of HTML5, CSS3, and JavaScript and to publish responsive web pages that can be rendered by modern browsers on all modern target devices. Web application frameworks help process UI-driven requests that result in publishing or updating web pages. Native application frameworks take advantage of capabilities available on specific target devices such as iPhones and Android phones. Organizations in many industries rely on web applications and related frameworks to conduct business daily.
英語のヒント
第9章「ソフトウェア工学」と第10章「エンタープライズアーキテクチャとソリューションアーキテクチャの管理」で述べたように、アーキテクチャスタイル、アーキテクチャパターン、デザインパターンは、一般にソフトウェアによる解決策の品質属性を確実に満たすために使われる。Webアプリケーションや、規模を拡大できるトランザクション処理型のWebサイトを作り、保守しやすくするため、MVCなどの適切なパターンを活用するWebアプリケーションフレームワークとネイティブアプリケーションフレームワークが、この20年ほどの間に作られ、改良されてきた。Webフレームワークは、Webアプリケーションフレームワークの中で、HTML5、CSS3、JavaScriptの利用を容易にし、現代のあらゆる対象端末上のブラウザーで描画できるレスポンシブなWebページを公開するために使われる。Webアプリケーションフレームワークは、Webページの公開や更新につながる、UIを通じた要求の処理を支援する。ネイティブアプリケーションフレームワークは、iPhoneやAndroid端末など、特定の対象端末で利用できる機能を活用する。多くの産業の組織は、日々の業務を行うため、Webアプリケーションと関連するフレームワークに頼っている。
Web 3.0 ApplicationsWeb 3.0アプリケーション
Web 3.0 is the next phase of the Web. It is still being realized, and similar to Web 1.0 and 2.0, it can only be fully understood in hindsight. The technology and uses of the Web overlap between the phases, with newer phases becoming preferred over their predecessor phases. If Web 1.0 was the read-only web, and Web 2.0 was the participation (write) web, then Web 3.0 may be the read, write, and execute web.
英語のヒント
Web 3.0は、Webの次の段階である。まだ実現の途中にあり、Web 1.0や2.0と同様、後から振り返って初めて全体を理解できる。Webの技術と用途は各段階の間で重なり合い、新しい段階が、それ以前の段階よりも好まれるようになる。Web 1.0が読み取り専用のWeb、Web 2.0が参加する(書き込む)Webだったとするなら、Web 3.0は、読み取り、書き込み、実行をするWebになるかもしれない。
Tim Berners-Lee had referred to Web 3.0 as the Semantic Web, a system of autonomous agents, which are software programs that respond to events. That model has shifted over the years. While AI (and other technologies such as AR/VR) will likely form a part of Web 3.0 or Web x.0, the principles that govern the next phase are expected to be around a web that is decentralized, permissionless, and trusted.
英語のヒント
ティム・バーナーズ=リーは、Web 3.0をセマンティックWebと呼んでいた。これは、出来事に反応するソフトウェアプログラムである、自律的なエージェントのシステムである。そのモデルは、年月とともに変わってきた。AIやAR/VRなどの技術は、Web 3.0またはWeb x.0の一部になる可能性が高いが、次の段階を支配する原則の中心には、分散され、許可を必要とせず、信頼できるWebがあると考えられている。
Web 3.0 sees a shift from the more traditional client-server model to a peer-to-peer networking model. A peer-to-peer network is one in which devices connect and can share data and processing without needing a centralized server. Peers in this scheme can perform the role of a traditional client, server, or both. This shift will foster a trusted, decentralized, and open web, where large companies don’t own the data, but everyone collectively owns it. Technologies such as a smart contract allow a trusted model that is needed in a decentralized system. Artificial intelligence and machine learning will improve information access through understanding the meaning of content available on the Web. The exemplar apps of the Web 3.0 phase will be defined in the future. Still, if the previous phases of the Web are any indication, it will fundamentally change how we operate in an ever-evolving technological world.
英語のヒント
Web 3.0では、従来のクライアント・サーバーモデルから、ピアツーピアのネットワークモデルへの移行が見られる。ピアツーピアネットワークは、中央サーバーを必要とせず、端末同士が接続し、データや処理を共有できるネットワークである。この仕組みのピアは、従来のクライアント、サーバー、または両方の役割を果たせる。この移行は、信頼できる、分散した、開かれたWebを育てるだろう。そこでは、大企業がデータを所有するのではなく、すべての人が共同で所有する。スマートコントラクトのような技術は、分散システムに必要な、信頼できるモデルを可能にする。AIと機械学習は、Web上のコンテンツの意味を理解することで、情報へのアクセスを改善するだろう。Web 3.0の段階を代表するアプリは、これから定まる。それでも、これまでのWebの各段階が何らかの手掛かりになるとすれば、進化し続ける技術の世界で私たちが活動する方法を、根本から変えることになるだろう。
Finally, Web 3.0 apps will run on a web that supports Web 1.0 and 2.0 apps, with the likely result being hybrid architectures that are partially Web 2.0 and 3.0.
最後に、Web 3.0アプリは、Web 1.0と2.0のアプリも支えるWeb上で動作する。その結果、一部がWeb 2.0、一部がWeb 3.0である、ハイブリッドなアーキテクチャになる可能性が高い。