タグ: アクティビティ

  • 【ai】本物(=Java)開発者と偽物(=AppInventor)開発者の壁

    [アクティビティのライフサイクル]  
    [API Guides>App Components>アクティビティ ]

    Androidスマホでアプリを動かし、住所を半分入力したところで別のアプリに移る。
    そして、また最初のアプリに戻ると操作画面には入力済みの半分の住所がそのまま残っている。

    この当たり前に思えることはAndroid開発「アクティビティのライフサイクル」と呼ばれる仕組みによって実現されています。

    この「アクティビティのライフサイクル」を理解せずにプログラムすると、アプリを切替える度に画面が初期化され途中まで入力した情報が全部消えちゃうんです!

    偽物(=App Inventor)開発者の壁

    実は私、App Inventor2でAndroidアプリ開発を始める前、Java開発に挑戦し挫折。
    その時、専門書に書かれたこの仕組みを理解しようと頑張ったのですが、頭が悪るく理解出来ませんでした。

    そして、使いにくいFileMakerGo開発で悪戦苦闘。
    その後、App Inventor2を始めました。

    App Inventorなら超簡単!
    「アクティビティのライフサイクル」を考える必要が無いんです!
    ぶっちゃけ、知らなくてもOK!

    App Inventor君が、難しいことは全て良きに計らってくれます 🙂

    で、本題です。
    先日、本物(=Java)開発者と偽物(=App Inventor)開発者の間に有る見えない壁に衝突:idea:

    私が利用している拡張機能付き有料App Inventor開発サービス「AppyBuilder」最新バージョンにFTPコンポーネントが追加されました。
    そこで早速、僕のハンディーターミナルアプリにFTPファイル送信機能を実装。

    [AppyBuilder]  
    [Hossein Amerkashi’s Blog(Hossein社長ブログ)]

    アップグレード版インストーラーをビルドし、スマホにインストールすると・・・・

    あれ、大問題発生!
    アプリ切り替えの度に、画面が初期化されてしまう!

    アプリ画面が初期化されると、下の4ステップを毎回、毎回、毎回繰返す必要が生じてとても不便!

    1)ログインする
    2)受注画面へ移動
    3)指定納品日を入力
    4)得意先コードを入力

    偽物(=App Inventor)開発者の壁

    良きに計らってくれるハズの「onSaveInstanceState()」が動いてないのかな:roll:

    とにかく、理由がまったく分からない 😮

    この問題を解決するには、僕が一番苦手な”アレ”をするしかないかも・・・・
    それは、メンバー同士の情報交換フォーラムへの英語での質問投稿。

    この投稿がキツイんです
    幼稚な質問をすると無視され(=無言でバカになれてる気がする)るんです。

    その前に、技術的な質問を英語で書くだけでバカ汗がダラダラ流れました

    でも、この画面初期問題を何とかしなければ仕事の効率に問題が出る!
    そこで、意を決してフォーラムへ質問することを決意:-x

    2時間ほど英語で質問文を考え、ダメ元で投稿!

    で、その結果は・・・・・・

    予想通りの全員からの「無視」 
    これ、精神的にかなりキツイ!

    でも、このままでは苦労して作ったアプリが使い物にならないぞ!

    そこで気を取り直し、仕方がないので週末自室で実験 😕

    1画面だけのアプリを作り実行、そしてアプリ切り替え。
    あれ、画面が初期化されるぞ!

    2画面のアプリを作り実行、そしてアプリ切り替え。
    あれ、やっぱり初期化される・・・なんで?

    結局、超シンプルなテストアプリでさえ、画面初期化が起きるぞ!
    なんで、なんで、なんで、なんでだ・・・・:-o

    開発のド壺にハマりました!

    最新のApp Inventorでは「アクティビティのライフサイクル」機能が省かれちゃったの!?

    1日掛け何度も何度も実験していると、あることに気付きました。

    インストーラーでアプリをインストールした直後は、何をやっても画面保存しない!
    でも、そのアプリをタスクマネージメントアプリでプロセスをKILL(=強制終了)。

    その後、再実行すると。。。。

    あれ、画面保存してくれる

    偽開発者(=App Inventor開発者)の僕には、この不思議なアプリのビヘイビア(=挙動不審な振る舞い)の理由が分かりません。

    でも実験した範囲で、取り合えずプロセスを一度KILL(=強制終了)し再実行すれば100%画面保存することを確認出来ました。

    よく分かんないけど、取り合えずの解決方法が分かってホッと一息 

    アクティビティのライフサイクル」を理解した上でアプリを作るJAVA開発者。
    アクティビティのライフサイクル」を知らずにアプリを作れる気になってるApp Inventor開発者。

    この両者の間には、すごーく大きな壁が有るんだと、今回のことで痛感しました 

    この不思議な現象をフォーラムへ投稿すると返事してくれるかな?
    きっと、また無視されるんだろうな・・・・・ 
    他のメンバーって「アクティビティのライフサイクル」を理解してるんだろうか?