リジェクトされたiOSアプリをAngularJSでリメイクしました & WebアプリとiOSアプリの違いについてまとめ

以前、申請して見事にリジェクトを食らったアプリがあったんですが、
ふと思いつきWebアプリとしてリメイクしてみました。

Str Generator
http://urouro.net/strg/

http://urouro.net/strg/

AngularJS を使ってみました。
あと、UIフレームワークとして Semantic-UI を使っています。
AngularJS触ってみて面白かったので勢いで作りました。

特徴

やれることは極めてシンプルで、

  • テキストエリアに入れた文字をカウントする
  • 任意の文字数で文字を生成する

のみです。

PC向けのWebアプリなら同様の機能をもったものは沢山あるのですが、スマホ向けではあんまり無いなあ、と思って作りました。
スマホアプリやスマホサイトの、文字数入力チェックなどに使えれば良いかな、と。

Webアプリ化してみて 〜 WebアプリのiOSアプリと違うところ

iOSアプリ・Webアプリをほぼ同じ仕様で作ってみたわけですが(一部仕様は落としていますが)、色々と勝手が違いました。

iOSアプリよりスピーディに作れる

手を動かしてみると、Web開発の速度の早さはやっぱり魅力的です。

もちろん、HTML/CSS/JSと色々理解する必要はありますが、
HTML/CSSCSSフレームワークで効率的に制作できるようになってきましたし、
JSも有力なフレームワークがどんどん出てきたので、
デザイン・コーディングをちゃんと勉強していないエンジニアでもWebアプリを作りやすくなってきたと思います。
(もちろんちゃんと勉強した方が良いです!)

審査がない

  • 審査がないので、スピーディに公開できる
  • 審査がないので、修正があってもすぐに反映できる
  • 審査がないので、エイヤッで公開してしまい、あんまりクオリティを考えないようになるかも

審査はiOSアプリ(App Store)独特の文化かと思います。
AndroidやFxOSにもありますが、App Storeほど厳しくない印象です)

審査があるからこそリリース日のコントロールが難しく、そのためにスケジュールの引き方が難しくなってきます。

またApp Storeは修正があったとしてもその都度審査が入ります。
そのためクリティカルな不具合があった場合、修正期間+審査の期間分、ユーザーを待たせてしまうことになります。
コンテンツのほとんどをWebViewで表示しているいわゆる「ガワネイティブ」であればこの限りでないこともありますが)

ただし、審査があるからこそ規約違反にならないように、事前に企画をカッチリと固めテストもしっかりやる、と
各工程のクオリティにも大なり小なり影響を及ぼします。

パフォーマンスが出ない

ネイティブアプリに比べて、Webアプリは一般的にパフォーマンスで劣ります。

今回のような超簡潔アプリなら問題はないのですが、凝った演出や高度なパフォーマンスを要求する場合はネイティブを選択するのが無難でしょう。

また、カメラ・センサなどのデバイス機能を使う場合はWebからは使えないので、ネイティブで作る必要があります。

まとめ

上記のようなネイティブとWebの違いはこれまでも頭では理解していましたが、実際作ってみるとばしっと腹に落ちますね。

あと、AngularJSよいです。
何らかのWebフレームワーク使ったことのある人ならすぐに仲良くなれると思います。
テンプレートエンジンも、他のものに比べてHTMLを汚染しない感じがします。

いろいろ長くなっちゃったので、AngularJSとSemantic-UIについてはまた今度まとめたいです。

 

JavaScript ライブラリ実践活用〔厳選111〕 (Software Design plus)

JavaScript ライブラリ実践活用〔厳選111〕 (Software Design plus)