個人開発 ナレッジベース

個人アプリの開発環境

このナレッジベースは2019年ごろに書いたものです。当時はMonacaを利用して開発していました。FlutterFlowにも通じる部分もありますが関連性が低いことをあらかじめご了承ください。

さて、「アプリを作ろう」と思ったらまず考えなければならないのは開発環境です。ちょうど1年ほど前に、持ち合わせたスキルをもとに、「少ない学習コストでアプリを作るには」と悩んでいた時に出会った、HTML5とJavaScriptでアプリ開発ができる優れもの、それがMonacaである。

iOSアプリを作るには「Macを買うところから」なんて事もなく、Webブラウザがあれば開発を始めることができます。iPhoneとAndroid向けのアプリを同時開発できるので、ちょっとしたWebサービスをアプリで展開するならば扱いやすい開発環境です。

「App StoreやPlay Storeに並べることができれば勝ち!」と、浅はかに思っていたこの頃は幸せでした。

Monaca

いくつか似たような開発システムはあるのですが、すんなりと馴染んでリリースまでたどり着けたので他は試してません。

Bootstrapに慣れ親しんでいる人なら扱いやすい、Onsen UIというフレームワークでアプリのUIを作ることができます。HTMLベースなので、jQueryなどのフレームワークを使ってアプリの「動き」を作ることができます。聞き慣れない名前かもしれませんが、Cordovaというプラグインでカメラなどデバイスのネイティブ機能を利用することもできます。

ただし、Monaca特有のクセもあるので、全力でおすすめできるかと言うと少し首を傾げます。基本的にはテンプレートを参考にカスタマイズすることができれば使いこなせるのですが、シングルページアプリケーションなので、HTMLとは少し違う独特なファイル構成や画面遷移の仕組みに躓きます。

無料トライアルでもリリースするまで十分に使い倒すこともできるので、気になるなら迷うより触って見た方が早いかと思います。

ちなみに、リリースするためのアプリのファイルを作るのを「ビルド」と言うのですが、無料プランでは1日3回のビルド回数の制限があります。実際にリリースするまでは「令呪をもって命ずる」と言いながらビルドしてました。(24時間で回復するFGO方式)

WP REST API

Monacaで基礎的な構造は作れるのですが、アプリに必要なのは「コンテンツ」です。

最初はWordPressのブログをアプリ化してストアに並べれば、新しい集客チャネルとして使えるんじゃね?くらいに舐めてかかってました。実際に記事を読むだけのアプリもあるので大丈夫だろうと…

そして辿り着くのが「WP REST API」です。JSON形式でブログ記事の情報を読み込むことで、アプリ内のコンテンツに組み込むことができます。

ちょっと調べるとMonacaを使って「iframeでブログを10分でアプリ化する方法」といった古い記事も見つかりますが、現在はうまく動かず、さらには後に語るリジェクト地獄によってそんな夢は打ち砕かれます。

記事が充実していれば大丈夫かも知れませんが、Appleの基準では「Webサイトで実現できること」だけでは審査に通りません。あくまでもアプリ外部のデータを利用してコンテンツを作る手法の一つの概念として頭の片隅に置いておくと、いろいろ活用方法が思いつくかも知れません。

記事のブックマーク機能などアプリ側でしか動かせない機能をつければ審査に通るらしいですが、最終的にWordPressをアプリ化してApp Storeに並べることは断念しました。

余談ですが、WordPressを設置しているサーバーの設定によっては、海外からのアクセスをブロックしているので、Appleの審査時につまづくような事件もありました。

Firebase

もう一つ、開発環境で重要なのが、データベースを利用したり、プッシュ通知を実装するのに必要なバックエンドサービスです。

Monacaではニフクラと言うサービスとの連携もされているのですが、グローバルスタンダードで先人の知恵も多く、応用が効きそうな「Firebase」を利用することにしました。

「サーバーレス」と言う概念は実に面白く、LAMP環境で実装しているようなことをフロントエンドだけで行う「制限された環境」がとても好みで、意地でもHTMLとJavaScriptだけでも極めてやろうと言う意思が強くなりました。(遠い目)

実は、Realtime Database くらいしか使ってないので、まだまだ未知の世界です。

デバッグ環境

スマホアプリは当然のことながら実機テストが必要です。MonacaはHTMLに近くブラウザで大まかな動作確認ができるとは言え、iOSとAndroidではOSに依存した挙動が違う部分や、読み込むCSSが違うことで、シミュレーター環境だけではわからない事もあります。

実機を持っていなくても動作がおかしいところはユーザーからの報告で気がつく事はありますが、レイアウトや表示のバグは、意図してそういうデザインになってると思われる事もあり、ユーザーからの報告では気がつけない事が多いです。

実際に、iPhone 8シリーズでツールバーの余白の処理の兼ね合いで上部のメニューが無駄に広かったりしたのですが、自分で気がつくまで数ヶ月はだれも教えてくれませんでした。

iPhoneだけならば、手持ちの実機で動けば何となく全機種で動くはずですが、Androidになると大量の機種があるので個人では全ての端末の動作確認を行うのは難しいです。

最低限でもiPhone X系、8系(またはSE)、Android1機種、の3台は欲しいところです。

(おかげでガジェオタ熱が再燃してます。笑)

copyright

AdRegion Inc.