読者です 読者をやめる 読者になる 読者になる

もっとラクにできたのに

アプリケーションを開発する過程で、作った後になってから「もっとラクにできたのに」という点を書き記していく所 魅了屋という零細デベロッパーが書くよ


↑広告

2017年01月30日(月)に調べた事

アプリ開発で躓いて、Google先生のお世話になった所をまとめていく。

 

・UserDefault

記憶の中では「NSUserDefault」だと思っていたが、Swift3で「UserDefault」に名前が変わっていた。Swift3になってから関数名の頭にある「NS」が無くなる物が多くなった印象である。

dev.classmethod.jp

ここが役に立った。ありがとう、ありがとう。

 

バイブレーションさせる

理想としては0.1秒だけバイブレーションさせたかったのだが、出来ないようだ。ちなみに、普通にバイブレーションをさせるには、AudioToolBoxをインポートした上で

 

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) 

 

と打ち込めば震える。会いたくても会いたくなくても震える。Timerと一緒に組み合わせると、○秒後にバイブレーションさせるといった事も可能である。理想を言えばキャリアメールとPCメールでバイブレーションの仕方が違うように、アプリを作る側でもバイブレーションの仕方が違う設定が出来れば、アプリの幅が広がる気がするのだが、そう簡単にAPIは開放してくれないようだ。

 

・画面遷移時に値を引き渡す

画面Aから画面Bに遷移する時に、値も一緒に連れてきてくれる方法を探した。自分が考えているアプリでは良く使う(はず)テクニックである。

qiita.com

ここが役に立った。ちなみにStoryBoard上でも設定が必要なので忘れないようにしたい。とか書いてあるといざ使う時になって忘れるんだろうなぁ。

 

リンクを張っただけで終わったのは、ソースコードの貼り付けが上手くいかなかったである。何故か言う通りにやっても上手くいかないのだ。Swift対応してない?

help.hatenablog.com

ちょいとしたチャレンジをしてみたかったんだ

ふと思い付いて一日でアプリが出来るか試してみた

今作っているアプリの進捗が良くない。具体的には、仕様変更をしなければならず、面倒臭いと言うオーラが身体を包んでいて離れない状況である。何となく別の事をしたいと思っていた1月20日の午前であった。そこで、気分転換も兼ねて、一日以内でアプリを完成させ、審査手続きまでステータスを進める事が出来るかやってみた。

 

まず企画

「賽の河原」という言葉を思い出した。幼くして亡くなった子供がひたすらに石を積む。目標の数まで積み上がると救われるのだが、あと少しの所で鬼に壊され、最初からやり直すというのを永遠と繰り返す、無駄な事の例えに良く使われる言葉である。これをテーマにして、石を積んでも積んでもリセットされるゲームアプリにした。

 

グラフィック

余りグラフィックにかける時間と技量が無いのと、あえて不気味さを出すために、文字だけで構成する事とした。アイコンも文字だけである。クオリティの高いアプリが全盛のこの時代には逆に目立つかも知れないが、それは実際にストアに並んでみないと分からない。

 

ゲームシステム

play.google.com

100万のタマゴというクリックゲームがあるが、これを参考にしてクリックすると石を積まれていき、あと少しの所でリセットされるという仕様にした。積む石の数は100に設定し、100個石を積めるとゲームクリアという目標も設定した。

 

プログラミング言語

言語はSwiftを使用し、対象OSはiOSのみとした。使用IDEXcodeAndroidはやった事ないので今回はiOSに一点集中トライという作戦を採用する。

 

画面構成

画面はタイトル画面、ゲーム画面、info画面の三画面で構成する。クリア回数やハイスコアは今回のバージョンでは採用せず、審査通ったら今後のアップデートをで対応する事にした。最初はUILabelとUIButtonの二つで画面を構成しようとしたが、AutoLayoutの調整に時間が掛かるため、タイトル画面などの一部はImageViewを利用し、画像を採用した。しかし画像と言っても手順はテキストエディタで文字打ってキャプチャしてはい出来上がりという方法なので、文字だけと言う世界観は崩れていない(誰も求めてないと思うけど)。

 

コーティング

石は数で表し、見た目はカウンタアプリの様にしようと思った。しかし、英数字で表示では能が無いと思ったので、漢数字で石の数を表示するようにした。仕組みは簡単で、数字の位ををそれぞれ10で割った数(10の位)と余りの数(1の位)をSwitch文で仕分け、それぞれ当てはまる漢数字をLabelで再結合して漢数字を表示させた。鬼に石の山を崩される仕組みは、一定の石の数からランダム関数で数字を呼び、ある条件に合致したら石を崩しリセットする。

 

仕上げ

iOSには、AndroidOS対応機種ほどでは無いにしても、幾つかの画面サイズがあり、それぞれに対応する必要がある。iOSの場合はまず大きな括りとしてiPhoneiPadというのがあるのだが、今回はiPhoneのみに対応させ、iPhoneの中でも4、4.7、5.5インチの画面に対応させる設定とした。相変わらずAutoLayoutの調整に手間取る。ここに半分近く時間を費やしたと思われる。イライラしながらも泣き言は言っていられない。とにかくゴールへ進むのだ。他にもスプラッシュ画面が出なかったりもしたのだが、色々と設定をいじっていたら表示されるようになった。

 

審査提出へ

1月20日の17時過ぎに一旦審査を出そうとしたのだが、すぐに表示の不具合に気付き修正を余儀なくされた。この日は18時までしか開発が出来なかったので、この日の審査提出は諦めた。次の日の午前から作業を再開した。相変わらずAutoLayoutの調整に難航したが、14時前に審査提出が出来た。1月20日10時から作業を開始し、同日18時に作業打ち切り、次の日の10時半から14時前まで作業をしたのでトータル12時間位で審査提出へ持ち込めた。

 

完成品 

f:id:waspossible:20170125160638p:plainf:id:waspossible:20170125160705p:plain

f:id:waspossible:20170125160746p:plain

この作業量であれば、半分から三分の二位の時間で仕上げなければいけないのかなと感じた。プログラミングで詰まった所は無かったが、AutoLayoutの調整や、細かい所が目に付いたら修正しないと気が済まず、先に進めない性格によって時間をロスしてしまった。この点は今後修正していかないと、規模が大きなアプリケーションの場合、より手順と時間の回り道をしてしまう事になる。中々難しいが、クリアしなければならない課題である。とにかく企画を立てて、数を作って慣れていくしかないんだろうなと思ったチャレンジだった。

 

その後

f:id:waspossible:20170125161239p:plain

審査落ちた。

この規模のアプリケーションが審査を通過したらそら他の人は怒りますよ。おそらく数年前なら通過する可能性もあったかもしれませんが、今は時代が違うし、クオリティやアプリの有用性が明確である事が求められるようになっていると思われる。ちなみにだが審査を待っている間、謎の高熱に浮かされ、医者に行って「インフルでは無いと思いますが一応検査しますね」と言われて検査をし、結果が出るまで1〜2分掛かる検査キットでわずか10秒でインフル陽性の反応が出てお互い気まずくなった経験をした。何となく審査側の「こんなアプリ審査させやがって、呪うぞ」という声が届いたのかも知れないし、そうでないかも知れない。

 

とにかく今言える事は、インフルを治して本命のアプリを早く作ろう。という当たり前の事を当たり前に言うしかないと言った所だろうか。

 

平熱になって二日目の16時半前

縦向きディスプレイは意外と便利だったと言う話

完成形だと思っていた 

moreeasily.hatenablog.com

 

この記事にもある通り、モバイル液晶モニタを使って、出先での開発をより便利にしようと言う企み。MacBookProにモバイル液晶モニタを横にしてセッティングすれば、それはもう便利便利うっはうっはうっはっは、というはずだった。

 

しかし、お世話になっているコワーキングスペースの机の幅は思ったより狭かった。モバイル液晶モニタを横に置くには幅が無い。仮に置いたとしてもMacBookProが端に寄ってしまってキーボードやトラックパッドの操作がしづらい。出来なくは無いが、多分続けていると骨格がゆがむ。根性がひん曲がっているのにこれ以上曲がっている物が増えても生きていく上では大変である(処世術及び治療費的な意味で)。

 

さてどうしようと思ったが、縦向きにしてみたらどだろうと考えてみた。考えたからには即実行がポリシーである(簡単な物だけ)。やってみた。MacBookProにXcode、モバイル液晶モニタにはブラウザを表示させる。いや、見くびっていた。便利すぎる。一画面だったらXcodeとブラウザをいちいち切り替える必要があるが、二画面だとその必要は無い。更に、縦向きにする事により、ブラウザのスクロールの回数が減るし、一画面で多くの情報を目にする事が出来る。たまにモニタを縦向きにして開発をしている光景をテレビで観たりした事はあったが、理由はこういうことだったのかと感心した。目から鱗と言うべきか。コロンブスの卵的な発想というのか。とにかく凄い、凄いのだ。ベリーベリー凄いのだ。これでブラウザでプログラミングの分からない所を調べて参考にしながらコードを打つと言う事が可能になるのだ。何か学習サイトの講義ビデオを観ながらコードを打つ事も出来る。Kindleアプリで参考書を表示させながらコードを打つ事も出来る。やっぱりベリーベリー凄い。WhiteBerryBerryz工房、支払いは任せろ!ベリベリーである(veryで統一しろよ)。

 

ひとまずコワーキングスペースでの開発スタイルはこれで確定しただろう。さぁ開発だ。さぁ仕事だ。さぁ力の見せ所だ。あとはやるだけだ。風向きはこちらに来ているのだ。チャンスは今だ。

 

ちなみに、縦向きのモバイル液晶モニタにブラウザを映してこの文章を書いているが、首が右に向いたままだったので、若干首がツライ。やはり物事には少なからず弱点と言う物があるのだな。あとこの文章を書くまでに、実際縦向きのモニタで表示させて利用したのはTwitterのTL、Yahooファイナンスポートフォリオである事をお伝えしたい。実際コード書いたりして利用してないじゃねぇかと思われるかも知れないが、しなくても想像しただけでウキウキする事もあるじゃん!

 

何とかやる気を出したい午前11時前

 

2017/1/26追記

現場を再現してみた

f:id:waspossible:20170126101438j:plain

実際便利。

一時は諦めなければならなかった

これに行きたい

www.tryswift.co

 

Swiftという開発言語のカンファレンスが東京で行われる。滅多に無い(と言っても去年もやってた)機会なので是非とも参加したい。プログラムを読んでみると、表題だけで興味を魅かれるものもある。行きたい。とにかく行きたい。

 

しかしこれには参加費がかかる。スーパー早割りというものは既に終了していた。しかしSwift早割りと言うのがある。これも割引率は低くなるものの、お得に参加出来るのである。だが、お得といってもトータルで308.49ドル(税込み)。約35000円である。去年の収益が1000円にも満たない弱小デベロッパーにはキツイ額である。ここ数日ドル円が円高に進んでいるとはいえ、結構な出費になる。

 

じゃぁどう稼ぐか。何故か競馬に走ってしまった。Swiftにちなんで三連単で3-12-10(す・いふ・と)と買ってみたりもした。全滅だった。バカだ。その金を参加費の足しにした方がよかった。バカだバカだバカだと自分を呪いつつ、昨日寝た。Swift早割りの締切は昨日いっぱいだ。諦めなければいけないと落ち込みつつ、眠りについた。

 

そして今日、5時に起きた。しかし気分の落ち込みや後悔の念が強く、もやもやした気持ちを抱いたまま今日を過ごさなければいけないのかと思うと絶望しかなかった。しばらくして、いつの間にか寝ていた。次に起きたのは11時半頃だった。もうずっと寝て過ごすつもりであったが、母に起きろと言われて無理矢理起きた。コワーキングスペースにも行きそびれた。もうダメだ。今日は終わりだ、全て終わりだ、と思った。せめてしっかり諦めをつけようと思い。trySwiftのページを覗いてみた。Swift早割りが締め切られている画面を見て、自分の行いを反省をするつもりであった。しかしここで意外な事が起きる。Swift早割りの締切がもう一日延びていた。まだチャンスはあったのだ。何とか用意しなければ。そこで自分持っている証券会社の口座を見てみた。ある株の値段が上がっていた。一部を売れば参加費を賄えるだけの上がり具合だった。すぐに一部を利確し、証券口座から自分のメインバンクの口座に移す。そしてtrySwiftの申込を済ます。よかった。無事に予約出来た。ありがとう、ありがとう。ありがとう。

 

このチャンスをフイにしない為に、健康管理などをしっかりしよう、Swiftをより勉強しよう、そしてギャンブルは余裕のある人間の遊びなのだと肝に銘じよう。そう思った。思ったじゃない。そうしろ。

 

ちなみに、決済通知のメールで知ったのだが、参加費は日本円に直すと36830円だった。35000円台で済むと思っていたのだが、手数料の事を完全に忘れていた。バカは死ななきゃ直らないという言葉があるが、今までの行いも含めると、バカは死んでも直らないし永遠に続くとういのが事実ではなかろうか。

更に快適を目指す

便利だと思った・・・しかし・・・

 

 

f:id:waspossible:20170113202310j:plain

付属のカバーがスタンド代わりになるのだが、いかんせん場所を取る。幅約80cmの机のコワーキングスペースではかなり致命的なのだ。

 

というわけで道具で解決

Anker® タブレット用スタンド 角度調整可能 iPad・iPad mini・Nexus 7等に最適

Anker® タブレット用スタンド 角度調整可能 iPad・iPad mini・Nexus 7等に最適

 

 

f:id:waspossible:20170113202653j:plain

f:id:waspossible:20170113202724j:plain

意外とズッシリ。

 

f:id:waspossible:20170113202808j:plain

ててーん!!(俺が写っているけど気にしない)

 

これでコワーキングスペースでスマートな開発ライフが送れる!その前にちゃんとやる気用意してねって話ではあるんだけど。

私の不注意のせいで

買って3日のMacBookProが傷だらけに

f:id:waspossible:20170113105802j:plain

 

傷アップ

f:id:waspossible:20170113105858j:plain

 

買って3日で傷だらけにしてしまった。採れて3日以内の卵もマヨネーズにされてしまう昨今、3日というのは最近の鬼門のブームなのかもしれない。早急に対策を練らねばいけない。

 

f:id:waspossible:20170113110152j:plain

 

 

f:id:waspossible:20170113110232j:plain

何か小さいのも付いてる。お得。

 

f:id:waspossible:20170113110440j:plain

勿論入る。これ以上傷を増やす事も無いだろう。

 

f:id:waspossible:20170113110536j:plain

小さい方には電源アダプタを入れる。

 

f:id:waspossible:20170113110629j:plain

入った。短いケーブルだったらあと数本入るかもしれない。

 

これで安心して持ち運び出来ると、心穏やかになった吉宗であった・・・。

 

 

 

ちなみに・・・

今回の事故の被疑者

f:id:waspossible:20170113110827j:plain

名刺入れやペン、定規などを纏めて入れている袋。フックとかの金属部がこすれて出来た傷だと思われる。敵は身内にいた(お前の不注意だろ)。

技術Blogっぽそうでそうでない内容を今日は書く

スマ検というのがある。

spkentei.jp

リンクを開くのも面倒臭いという人に説明すると、スマートフォン向けアプリの開発レベルが計れるものらしい。Swift、Unity、Androidと、開発した事があるプラットフォームを選択して問題に答えると、点数や正答率などが分かる物である。JavaOracleの試験でポチポチと選択肢を選ぶのを想像してもらえれば分かりやすいだろうか(但し記述問題もある)。

 

相変わらず開発する気力が出てこないので、現実逃避と自分のスキルを測る意味で受けてみようと思った。勿論選択するのはSwiftである。しかし一問目から分からない問題が出てきた。仕方ないので飛ばして次の問題を答える。これは分かる。こんなことを150問分繰り返したのだが、文句を言いたい事がある。ページの読み込みが上手くいかず、選択肢が選択出来なかったり、回答確定ボタンが押せなかったりした。これは混んでいるWifi回線を使ってネット接続をしているからだろうなと納得した。それともう一つ。空欄に入るコードを書けまたは選べという問題で空欄が無い。どこやねん。Swiftのスキルを測るのか、見えない物を見ようとするエスパースキルを測るのか分からなくなった。そしてこのような繰り返し作業は飽きる。正直最後の10問くらいは考える力が残っていなかった。会社員時代に試験を受けさせられた時と何ら進化していないのが悲しい所である。

 

結果は正答率46%。60%を目指していたので、これは低いなと思ったが、全国平均が28%と出ており、これは正確な物なのか分からなくなった。全国平均より上と言うプライドと自信を持って開発が出来るのかは誰も分からない。とりあえずJavaOracleの試験を受けさせられて惨敗だった頃の記憶がフラッシュバックして発狂しなかったのが成長の証だろうか。先ほど何ら進化していないと書いたけど、進化してるじゃないかと思った貴方。普通の人は発狂しない。あれからJavaOracleのコードを見ると殺意が湧くんだよなぁ・・・。

 

近々IPAの試験の募集が始まる。自ら進んで受験すると言う人は出願を忘れないように。会社から強制的に受験させられるという人はお気の毒様。私は受験する予定は無いが、どういう理由であれ受験すると言う人が一人でも多く合格出来れば幸いである。もうIPAといえばインディアン・ペール・エールという苦いビールしか連想したくない(但し医者に酒は止められているから飲めない)おっさんのささやかな今日の出来事である。

 

コワーキングスペースから、もう帰ろうとしている15時前

 

2017/02/13追記

スマ検サービス終了するってよー!!

spkentei.jp