*

アプリでplistを使うなら是非とも使いたいエクセルの小技3選

公開日: : TIPS, アプリ開発 ,

plistファイルは便利ですが、大量の文章や、設定などを書き込む際は非常に大変です。

xcodeの標準のエディターの使い勝手はもちろんのこと、フリーのツールを用いたとしても、plistをいちいち変えるのは大変でしょう。

今回は、アプリ制作の際によくplistを使う人のために、私がよく使うExcelの小技を紹介します。

ストーリの文章や、アイテムのパラメータなどにも使える便利な小技です。

スポンサーリンク

 

関数を用いた自動化

例えば、アイテムを何十個も用意して、それぞれにパラメータをplistで設定するとします。

<アイテム1>

名前: 木の剣

攻撃力: 100

売却価格: 100

画像ファイル名: sword1.png

<アイテム2>

名前: 鉄の剣

攻撃力: 200

売却価格: 150

画像ファイル名: sword2.png

 

実際にxcodeのplistエディタで設定すると以下のようになります。

xcodeエディタによるplistファイルの画像

plistファイルはxml形式ですので、実際のファイルをテキストエディタで開くと以下のようになっております。

上記の選択範囲がアイテム1を構成するのに必要なコードとなっております。

では、Excelを用いてどのようにこの部分を自動化できるのでしょうか。

それは、関数を用いることでできます。では、実際に上記のコードを関数を用いて自動化してみましょう。

 

関数を用いた自動化その1

plistを関数で作るその1

このように、可変部分を変えることでplistの構文をExcel上で作り出すことができます。

結合する関数はCONCATENATE関数を用いてください

このD列をコピーし、直接テキストファイルに書き込むことでxcodeのエディタ上でいじらなくとも、plistに書き込むことが可能となります。もちろん、設定するパラメータが増えれば増えるほどこれは効果がありますが、注意点がいくつかあります。

 

注意点その1:バックアップは必ず取る

直接テキストファイルに書き込んだ結果、ファイルが壊れてしまうと、該当箇所を直さない限りxcode上で開くことができなくなります。ですので、直接書き込む前には必ずplistのバックアップを取るように気をつけてください。

 

注意点その2:dictionary型のキーの順番が担保されなくなる

plaitでdictionary型を作った際に、キーの順番は基本的には作った順番で掲載されますが、一度テキストファイルを直接いじってしまうと順番がごちゃごちゃになります。これを避けるためには、高性能なplistエディタを使うかArray型で保存するかのどちらかを選択肢なければなりません。ですので、順番を気にする場合は気をつけてください。

 

関数を用いた自動化その2

その1の例ではあまり関数による自動化の恩恵が感じられないかもしれません。ですので、今度はもう少し使い勝手が良くなるように改善してみましょう。

plist関数による自動化その2

このように、可変で追加する項目を横に並べてみます。すると、ぞれぞれのアイテムのパラメータの可読性が上がり、保守性も高まりますし、アイテムを追加する時の参考になります。関数に「$」をつけると、右に行っても参照すべき項目が変わらなくなります。

ただ、これも完璧ではありません。なぜなら、追加するたびにいちいちアイテムごとにコピーをして貼り付けるか、縦に長い一つのコードに変えなければならないからです。この手間を改良するには幾つか方法がありますが、最も簡単な方法をご紹介します。

 

関数を用いた自動化その3

 

では、今回は2件だけですが、作成した関数を全て選択し、Excel上でコピーしてください。

plistをExcelで自動化 最後その1

適当なシートを開き、形式を選択してペーストで、数値を選び、行列を入れ替えてください。数値を選択しないと、関数がそのままコピーされるので気をつけてください。

plistをExcelで自動化 形式を選択して貼り付け

先ほどの縦書きの状態とは打って変って、それぞれのパラメータが横持ちになってセルに記載されます。最終的にエディタに貼り付けるためにはこの方向に変えなければなりません。

plistをExcelで自動化 最後その2

この状態でまたコピーし、適当なエディタにペーストします。私はSublime Textを使っていますが、タブが表示できて、置換ができるエディタならどれも大丈夫だと思います。すると、下のような状態になります。あともう少しですね。

plistをExcelで自動化 最後その3

置換の欄に、タブを検索し、改行に置換するようにしてください。タブはコピーして貼り付け、改行もコピーして貼り付けでできると思います。改行置換の方法がわからなければ、ネットに幾らでも方法が転がっていますので、お使いのエディタに合わせて検索してみてください。ちなみに大体のエディタではコピー&ペーストでなんとかなります。

plistをExcelで自動化 最後その4

うまく全件置換できれば下記のような状態になります。これは、数が多ければ多いほど大活躍します。

plistをExcelで自動化 最後その5

まとめ

いかがだったでしょうか?面倒臭いplistファイルの作成も、こうしてうまくExcelを活用すれば、効率的に作成することができます。もちろん、Excelのすごいところはそれだけじゃなく、管理もきっちりできるところでしょうか。Excelに記載した内容をplistに書き込むようにすれば、いちいちplistエディタを開いて中を確認しなくてもplistの中身を把握することができます。また、VBAができればさらに便利な機能を作ることも可能ですが、それはまたの機会に紹介します。

是非このテクニックを活用して効率的に開発してみてください。

 

スポンサーリンク

コード左

コード左

関連記事

電卓とお金

ソシャゲなどの課金ゲームでアプリ内課金をさせたくする方法

人間ってのは本能的に違和感を避けて、統一感を求める生き物だそうです。ええ、そうだと思います。

記事を読む

貯金箱

「廃課金」は自分の手取りに対してどれだけの割合で課金しているかによる

現在作成中のアプリ(ガチャ現Final)で課金額に応じて称号を与えようと考えていたのですが、今更にな

記事を読む

logicool ultra thin touch mouse 表

トラックパッドのクリック不具合を防ぐためにマウスを使おう(MacBook)

MacBookのトラックパッドは便利ですが、連打していると、調子が悪くなる場合もあります。今

記事を読む

nendロゴ

nendのネイティブアドを初心者でもアプリに実装できる手順(準備編)

※当記事は、nendのネイティブアドをSDKで実装してみたい人のための記事です。  

記事を読む

nendロゴ

nendのネイティブアドを初心者でもアプリに実装できる手順(実装編)

※当記事は、nendのネイティブアドをSDKで実装してみたい人のための記事です。  

記事を読む

pattayapicture1

後悔しないために、海外旅行に行く前に覚えておくべき事

ブログの更新が久しぶりになりました。 実は脱サラ記念という事で、友人とともにタイのパタヤに行っ

記事を読む

ウザすぎる天使と死んだ僕のアイコン

実話や恋愛を元に泣ける話を作り、ユーザーの心を動かす方法

どこまでも論理的な人など存在せず、ザ・ロジカル人間と言われる人にも感情が宿っています。

記事を読む

本棚の前で読書する女性

成功するためのオススメ読書術は本棚の本を捨てる事である

ネットを調べてみると、成功するための読書術について書いている記事をちらほら見かける事がありま

記事を読む

天を仰ぎ見るビジネスマン

ユーザーにアプリをダウンロードしてもらうための6つの基本(ASO)

せっかくアプリを作ったのにダウンロードされない。そんな経験をした事がある人は多いと思います。

記事を読む

キンググローリーのログインボーナス画像

ログインボーナスなどでモチベーションが下がってしまう理由

いつも評価されてたビジネスマンが上司が変わって評価されなくなる事ってありますよね。 「

記事を読む

Message

メールアドレスが公開されることはありません。

麻婆豆腐
コンビニの麻婆豆腐を食べ比べてみた

では、今回は大手コンビニである ファミリーマート、セブンイレブン、ロ

会議の資料
【仕事術】情報の共有には紙やホワイトボードの方がいい場合もある

お久しぶりです。 今抱えている案件がひとまず落ち着いたので、久しぶり

オートミール
ダイエットの救世主!オートミールの美味しい食べ方について

今回は個人的に最強のダイエット食材であると思われるオートミールをいかに

諸葛亮孔明の出師の表から学ぶ、誰かを説得する文章のコツ

今回は諸葛亮が北伐(魏への遠征)に向かう際に、皇帝の劉禅に向けた書いた

大きく手を丸にして承諾するビジネスマン
日本人がつくづくイエスマンだと思う理由

今日はふとした疑問からひょんなことを思いついたので書いていきます。

→もっと見る

  • 当ページの管理人のShaneです。元コンサルタント。今はしがないフリーランス。アプリ開発をしながら人々の役に立つ駄文を垂れ流してます。
PAGE TOP ↑