ごんれのラボスマートフォン用の表示で見るごんれのラボiOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。当面の目標この記事を読んでできることこの記事を読んでできないことどのように実現するかインストール済のアプリケーションを取得するアプリケーションの基本的な情報を取得するアイコン画像を生成する起動中か否かのフラグをもたせる今回作成したもの次回以降の予定まとめ概要Qiitaにあげた記事の転記。CCなど)用に、インストール済のバージョンを一覧表示して、任意のバージョンを起動できるLauncherアプリケーションを作る。参考までに、Illustratorで現在インストールできるバージョン一覧がこちら。2018、公式にはv22.0?)に致命的なバグがあって、そのバージョンを使って印刷事故を起こす人を減らしたいと思って、書いてみることにした。どんなバグかは、下記フォーラムを参照。forums.adobe.comなお、すでにものかのさんが同じ趣旨、かつもっと素晴らしいものを公開されている。1.0.0私は少し違うアプローチのアプリにする予定。ものかのさんのには似たようなアプリを作ることを了承いただいている。他にも追加したい機能はあるものの、形にしないと先に進まないので、下記のようなアプリケーションを当面の目標とする。繋ぎ込み(画面表示については一行も書けず...)アプリケーションの起動処理どのように実現するかインストール済のアプリケーションを取得する真っ先に思いつくのはApplicationディレクトリの中をアプリケーション名でゴリゴリ検索するという手段だが、さすがにイケてなさすぎる。調べたところ、BundleIdentifierを渡すと該当するアプリケーションのファイルURLの配列を返してくれる関数があることがわかった。*/アプリケーションの基本的な情報を取得する現状、必要と思われる情報は下記。Identifierアプリケーションのファイルパスほとんどの情報がinfo.plistを参照すれば取得できるので、info.plistをNSDictionaryとして展開して取得することにした。GM(以下略)*/上述した情報の一部を展開したNSDictionaryから取得する方法は下記の通り。""アプリケーションの名前はinfo.plistから取得すると、Finder上の名称と異なってしまうので、FileManagerから取得した。中に格納されている拡張子が「.icns」のファイルから作成する。アイコンファイル名を取得。String続いて、ファイル名と格納されているディレクトリのパスをつなげればファイルパスがわかるので、そのファイルパスを元にNSImageを生成する。クラスに起動中のアプリケーションを取得する関数があるので、それと比較させれば初期化時は判断できると考えている。随時起動状態を監視しなければいけないので、一旦先送りとした。今回作成したものプロジェクトをGitHubにアップした。LaunchAppFromBundleIdentifierModel、ViewModel、ユニットテストのみ、転記しておく。ViewModelと付随するテスト。}}続いて、Modelと付随するテスト。}}次回以降の予定UI(View)を作る各アプリケーションの起動状態を検知できるようにする各アプリケーションを起動できるようにするたぶんRxSwiftを導入するまとめ今回初めてMVVMを意識して書いてみたものの、実装よりも構造に悩む時間のほうが長かったかもしれない。今回書いたViewModelもテストするために必要だったから書いたようなものなので、どうViewに結びつけていいのかよくわかっていない。エラー処理をまったく入れていないので、どう入れたらいいのかわからない。初期化に失敗したらnilを返すようにしてて、そういうときにどうエラーに結びつけるのか、よくわからない。わからないことだらけなので、気が向いた方にアドバイスをいただきたい...。はてなブログPro元DTPで進行管理しつつ、スクリプトを書いてた効率厨。二匹の猫に翻弄される日々を送っている。掲載しているスクリプトの転載は許可しておりません。スクリプトに関する質問、要望がある場合は、Twitterにてご連絡ください。ごんれのラボスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。