アーカイブヒビノアワ日々思うことなどぶくぶくと2014年1月20日デザイナさんのためのiOSアプリ開発の先生やってます生放送授業を無料で受講できるschoo(スクー)で、iOSアプリ開発の先生やっています。WEB-campusこの授業では、プログラミング経験はないけどiOSアプリ開発には興味がある!というデザイナーさん、ディレクターさんに向けて、「iOSアプリ開発って実際にどういうことをしているの?」ということを分かりやすく説明していきます。プログラマーが何をしているのかが分かれば、デザイナーやディレクターとのやり取りも今よりもっとスムーズになるはず。アプリ開発ができるようになるには本授業だけでは足りないですが、プログラマーの「キモチ」を理解できるようになります。思ってもらえる授業になっております。今週木曜日はプログラミングはじめの一歩があります。来週は最終回でiOSアプリの画面デザイン・遷移を驚くほど簡単にするStoryboardの使い方をやります。過去2回の授業も録画したものが観られるみたいです。デザイナーでも安心!はじめてのiOSアプリ開発デザイナーのためのXcode入門ぜひ、授業に参加してみてください。SDKを使いたい、使わざるを得ないということもあります。SDKを使うのは結構簡単です。CenterでXcode4をダウンロードしておきます。Xcode4の中の[Xcode4].app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdkこのフォルダをXcode5のこのフォルダにコピーするだけ。SDKの設定をiOS6に変更すればオッケー。4日iOSアプリのローカライズに便利なアプリiOSアプリの開発を仕事でしていると、日本だけでなく海外でも販売したいという要望をもらうことが良くあります。アプリで表示する文字列をローカライズする必要があるわけですが、文字列が追加されるたびにちまちまLocalizable.stringsに追加して、他の言語用に翻訳してファイルに追加してとか、もう、めんどくさすぎて。納品前にいきなり文言追加とか、あーた、激おこぷんぷん丸ですよ!!(←使ってみたかっただけw)そんな、僕たちに朗報です!このアプリでバスっと解決ですよ!!その名も「Linguan」!しばらく使ってますけど、すでに手放せないアプリになっております。@"comment")ってしておいて、そのまま放置。翻訳が必要になったら、Linguanを立ち上げてXcodeのプロジェクトを読み込ませれば、対訳状態で入力できます。新しく追加された文言もきちんと教えてくれるので、翻訳抜けもありません。これなしに、iOSアプリ開発するのだるいす......。Tweet2012年10月11日LINE復活!!iPhoneにLINEを入れて使っています。便利ですよね!しかし、iPhone5にしてからというもの、結構な頻度でAppleIDのパスワード入力を求めるダイアログが表示されて、困っていました。解決しました!!以下の手順で解決しました。IDとPass入力この方法は、以前のバージョンの時にも解決方法としてあちこちに出ていたものなんですけど、その時は、これをやってみても駄目でした。最新版で再度やってみてください。あぁ、あのダイアログが出るのがどれだけストレスだったか......。Playからアプリをインストールして使うの楽しいですよね!でも、中にはうまく動かないアプリもあります。いや、たぶんちゃんと動くんですよ、でも、もしかするとある特定の状況でうまく動かないのかもしれない。今まで動いていたけど、バージョンアップしたら動かなくなっちゃったのかもしれない。自分の手元で動かないアプリを公開する肝の据わった開発者ってそんなにいないです。動かないのはなんらかの原因があるはずなんです。動かなくなったじゃないか!!」と怒りたくなる気持ちはわかります。レビューに書き込みたくなっちゃう気持ちはわかります。待って!いや、書いちゃってもいいです。書いちゃってもいいんだけど、書いた後にでも、サポートのことを思い出してあげてください。開発者は、アプリを登録するときに、必ずサポートを行うためのサイトのURLを登録する必要があります。このサイトから、ユーザサポートを行うようになっているのですね。レビューに「動かない!」って書かれても、開発者には「なぜ動かないのか」を知るすべはないです。今後レビュー欄でコメントのやり取りができるようになれば変わってくるでしょうが、今のところはまだ難しい。そこで、サポートサイトの出番です。「どんなデバイス、OSで、どんな状況で、どんな現象が起きたのか」これを伝えてもらうだけで原因究明がやりやすくなります。すると、すぐに対応可能かもしれない(とはいえ、AppStoreの審査があるので、修正版は1週間後に公開とかになるかもしれませんが)、すぐには無理でも調査を開始することはできます。それでも原因が分からない場合、再度詳しい情報を聞いて......というやり取りも可能になります。「もう、こんなアプリ使うもんか!」と頭に来るのはわかります。僕も、そういう風に何度も怒ってきましたし。開発者も好きで不具合を作っているわけではないのです。思いもよらないところからバグが出てくることもあります(というか、ものすごく良くあります!)。サポートを有効に使ってください。それで、バグが修正されたら、ユーザも開発者もお互いに幸せになれると思うのです。願わくば......。...でも、不具合なおしてくれたのでもう一度使ってあげるんだからね!」そんなツンデレだいすきです。7日なぜ、iPhoneは写真にアクセスするだけなのに、位置情報を利用したがるのかiPhoneアプリ、特に、写真をあつかう系アプリで「"***"は現在の位置情報を利用します。よろしいですか?」という、ダイアログが表示されたこと、ないですか?「写真やビデオに含まれる位置情報の利用を許可します。思ったことないですか?僕はあります。不思議に思ったのでした。はてなアルバムというアプリがリリースされました。HatenaAlbumiPhoneで撮った写真でアルバムを作れるサービス用のクライアントアプリですね。このアプリで、写真を追加しようとすると、こんなダイアログが出ます。続いて、こんなダイアログが表示されます。前者は、「はてなアルバム」が表示しています。後者は「iOS」が表示してます。その疑問に先にこたえるために、前者のダイアログをはてなは用意したのだと思います。写真と位置情報の利用、一瞬「関係ないのに位置情報をこっそり盗むつもりだな!」って思っちゃうかもしれません。写真には実は位置情報が含まれている場合があります。iPhoneの標準のカメラアプリでも、位置情報の利用を有効にしていると、撮影した写真に撮影場所の情報が付加されます。位置情報を有効にしているかどうかは、設定アプリの、位置情報サービスで確認することができます。なんで、こんなことになってるの?当然の疑問です。これ、開発者がどうにかできるものではないのです。後者のダイアログ、これは、ユーザの写真にアクセスしようとするときに、iOSが勝手に出すダイアログだからなのです。iPhoneでアプリが、ユーザの撮った写真にアクセスするためには「ALAssetsLibrary」というiOSが用意した仕組みを使う必要があります。カメラロールに保存されている画像の一覧を画面に表示して、それを選択させるようなUIを作りたいとします。カメラロールの中から、1枚だけ画像を選択させるのであれば「ALAssetsLibrary」を使わず、「UIImagePicker」という別の方法で取得することができ、この場合は、位置情報うんぬんのダイアログは出ません。複数の画像を選択させたいという用途には、「UIImagePicker」は使えないので、「ALAssetsLibrary」を使うことになります。この「ALAssetsLibrary」は、一覧を取得するだけではなく、画像の情報(画像そのもの、ファイル名、メタ情報)も取得することができます。このメタ情報に位置情報が含まれていて、これを利用「できてしまう」のです。自分の開発しているアプリが、これを実際に取得するかどうかは関係ありません。確かに、正しい動きだと思います。ユーザも戸惑ってしまうし、開発者もユーザにどう説明したらいいのか難しいところではあります。今回のはてなアルバムのやり方は、数段階でアラートを出しています。行儀が良いと思います。それでも、なかなかユーザには伝わりにくいんですよね。位置情報を取得する、その直前までダイアログは出さずに、取得するその直前でダイアログを出していくれたらいいんですけど、メタ情報の一部に含まれる位置情報なので、その取得方法を考えるとちょっとこれは難しいのかなとも思います。このあたり、今後のiOSでもう少しうまい対応がされていくと良いなと思うのですが......。※できるだけ、開発者でないユーザにも分かるように書いたつもりです。そのため、若干開発者が見ると、ちょっとニュアンスが違うと思うところがあるかもしれません。誤解を招きそうな記述がありましたら、ご指摘いただけるとうれしいです。Tweet2012年4月13日シンセマニア向けiPhoneシンセアプリ「CASSINI」出た!ともだちがすごいシンセ作りましたよ。見た目のかわいさとは違って、出てくる音は本格派。このシンセすごいんです......。Arpeggiator変態的......。シンセマニアなら、にやりとしちゃうようなダイアグラムでしょ?しかも、プログラマブルなアルペジエータもついてくる。CoreMIDIにも対応しているので、MIDIキーボードをつないで演奏することが可能。3分までなら演奏したものを録音することもできるので、思いついたフレーズを録音なんてこともできちゃいます。iPhone版だけじゃなくて、WindowsとかMacでも使えるVSTiで欲しいと思ってしまうレベル。Saleで250円!楽しいですぜー。6日85円で最高に楽しめるiPhoneアプリ「Figure」が出た!久々に、興奮するほど素晴らしくて楽しい音楽アプリが出ましたよ。音楽制作ソフトREASONのPropellerheadから85円という低価格で!どんなアプリかは、次の動画を観ていただきたい。?デザインはかわいいのに、出音は本格的でしょ?今までこの手のアプリっていろいろ出てるんだけど、本格的に作りこめるか、おもちゃかのどちらかって感じだったんだけど、Figureはちょうど真ん中の良いあたりなんですよね。基本パッドを押しっぱなしで決まったパターンが再生されるんだけど、タイミングで押せば自分のフレーズも生み出せる。2小節のループなので、曲は作れないけど、DJ気分で音の抜き差しやフィルタを変化させたりってのができる。本格的じゃないけど、かっこよく遊べる。それがFigureです。85円でこれだけ楽しめるなんて、すごい時代になったよね。Tweet2012年3月23日iOSアプリでアプリ内課金を実装してみた僕個人が細々と開発を続けているiOSアプリ、BPMのアプリ内課金対応バージョンが本日リリースされました。このアプリ、最初に公開したのが、2009年2月12日ですから、もう公開して3年はたっているわけですが、毎日100本くらいはダウンロードされているし、きちんと集計はしていなかったんですけど、おそらく累計で20万本くらいはダウンロードされているんじゃないかと思われるアプリです。AppStoreでアプリを公開するにはそれが無料のアプリであっても、年間参加費8400円がかかります。好きなプログラミングで自分の欲しいものを作ってるんだから、それくらい仕方ないかなーとも思っていたんですけど、ダメもとでアプリに広告(iAdとAdMob)を表示するようにしてみました。おかげさまで、これだけで年間参加費くらいは十分賄えるくらいになったのですが、ユーザさんの一部から「有償でもいいから広告なしバージョンが欲しい」というメールをもらうようになりました。いえ、有料のアプリにするほど立派な機能やデザイン性のあるアプリではないので、躊躇していました。早いうちから考えていたんですけど、アプリ内課金ってなんだか敷居が高い気がしたんですね。お金が絡むとなんかいろいろエラー処理とかめんどうそう、とか。ことが分かってきました。そこで、今回「広告を除去」を85円で購入できるようにしてみました。いう結果が出るのか楽しみでありますし、技術的なノウハウも手に入れたので、本業の方でも役立ててみたいと思っています。あ、このあたり興味ある方は、ご相談くださいませ(宣伝)。SDK5時代の私的アプリ開発方針iPhoneアプリを開発したり、androidアプリを開発したりの日々を過ごしている今日この頃です。最近たてつづけにiPhoneアプリを開発していくなかで、自分なりの開発の方針みたいのが決まってきた風味なので、ちょっとまとめてみようかと思います。targetは4.xiOSのどのバージョンを最低バージョンにするかっての、割と悩ましいんですけど、僕は、「4.1」か「4.2」にすることが多いです。iOS4ユーザはかなりの数いると思うので。targetを4.1とかにすると、最新の開発環境で、古いOSに対応したアプリを開発することができます。古いOSで使えないクラスやメソッドを使わないように気を付ける必要がありますが。targetを5.xにできるようになるのは、iOS6が出たタイミングかなぁ。ARC使うべき!これは、真理なんですが、個人的に自分で確保したメモリは自分できちんとおかたづけしたいと思ってしまうので、ARCは基本的に使いません。オープンソースのライブラリや俺ライブラリなどでARC対応でないものも多いので、そのあたりも統一したい感じ。ARC対応のライブラリをどうしても使いたい時は、そのライブラリのファイルだけをARC有効にして使っています。CountingStoryBoardは使わないiOS5以上で使えるStoryBoardは画面遷移が簡単に作れちゃう優れものなのですが、僕は使っていません。StoryBoardを使うとiOS4では動かないアプリになっちゃうってのもあるけど、画面遷移のコード書くのって、そんなに難しくも面倒でもないし、どちらかというと、個人的にその部分のコード書くの好きだったりもしてwターゲットがiOS5で行けるようになったら使うのかなーと思ったりもしますが、でも、やっぱり使わないような気もします。それは、次の理由もありまして。xibは使わないxibは使いません。builderでの画面デザインは行わず、すべてコードでUIを作っています。xibを使わない方がアプリの速度が(若干)速くなるってのもありますが、それ以上にあのドラッグ&ドロップでアクションや、アウトレットを結びつけたり、デリゲートやデータソースを結びつけたりってのが嫌なのです。うっかりデータソースを結びつけるの忘れちゃったり、ヘッダからアウトレット削除したのに接続を解除しなかったためにアプリが起動しなかったり。コードで書いていれば、あまり忘れないし、経験上、仮に問題が起きた時でも発見が早いと思います。基本、すべてコードでUI部品を配置してます。Xcodeが作るひながたのxibを使わないバージョンのプロジェクトを作っておくと便利ですよ。5日miilのおいしい使い方おいしいもの好きですか?僕は好きです。妻の人が作ってくれるおいしいものも好きだし、お店で食べるおいしいものも大好きです。お昼ごはんを写真にとって、Twitterに投稿するってのが僕の日課で、最近は、これ、miilmiilを愛用しています。miilなら、食べ物の写真を撮って、おいしく加工して、miilのタイムラインとTwitter、Facebookに同時投稿が可能です。GPS情報を使って、食べた場所も一緒に投稿できます。「自宅」とか「会社」を選ぶと位置情報は投稿されないという素敵仕様でもあります。食べ物の写真って、テーブルに置かれたときに撮りたいじゃないですか?食べかけを撮るのはちょっと悔しいし。食べ物出てくる→miilで写真撮る→お店の情報入力する→コメント書く→投稿といきたくなりますけど、これだと、せっかくの料理が冷めちゃう!!(といいつつ、僕よくやっちゃうんですがw)それに、食べる前なのでどうおいしかったのかも書けないし!そこで、こんなワークフローを提案します。食後のコーヒーを楽しみながら、miilを起動→撮った写真をまとめて投稿ってのはどうでしょう?miilにもカメラ機能はありますが、miilで撮影しなくちゃいけないってことでもありませんよね。さんがmiilチームにジョインし、主にiPhoneアプリの開発を担当して頂くことになりました。表向きはエムロジック株式会社さんへの委託ですが、それにとどまらず、miilの開発に深く深く関わっていただく方針です。2012えっと、こんな感じで、僕も開発をお手伝いすることになりましたー。なってau版iPhone4S予約した」で、かっとなって予約したiPhone4Sが届きました。結局1週間かかりませんでした。思っていたより、早かった!で、さっそく使いはじめたのですが......。普通にネットにつながるよママン......。日曜日の昼間、渋谷にライブを観に行って、その後、新宿でご飯を食べてカラオケに行ってから帰ってきたわけですが、その間、通信できなかった時間は一度もなかった!!しかも、アンテナ2本しか立っていない状況でも、普通に通信できたし!softbankの時は、ライブハウスやお店に入ったらほとんどアンテナ2本くらいで、そういう状態だと、スピード以前にネットにつながらないってことがほとんどで、「ライブなう」を呟けなかったりもしたのです。auはさすがというか、4Sががんばっているのか、アンテナの数が少なくても、とりあえずネットにはつながるし、そもそも、ほとんどの場所でアンテナ4本以上キープしていました。今朝の通勤電車の中で、今までsoftbankではできなかったyoutubeの動画を観るというのをやってみました。駅を出るタイミングで動画を再生して、駅の間、次の駅、その次の駅と駅の間くらいで動画が終わる感じでした。ちなみに、観たのは、この2本。ほんとに楽曲良いので力強くおすすめ。ま、それはいいとして......。これ、今までのsoftbankだと、まず最後まで途切れず観るというのは不可能でした。途中でばしばし止まってしまうし、その後の再生もすぐにはできないしという感じ。auでは、この2曲一度も途切れずに観ることができました。ついでに、ustreamも観てみました。以前、softbankの時に電車の中で観たとき(夜だったけど)2秒くらい再生されて、真っ黒画面になって、でも、チャットだけはかろうじてできるみたいな感じで、結局ほとんどの時間を真っ暗画面か止まった画面で待つという状態でした。今回は、朝だったけど、それとは逆で再生中に2秒ほど動画が止まることが2回ほど、途中で10秒くらい真っ黒画面になったけど、それ以外はちゃんと再生されました。これは、ちょっと驚き。au版iPhone、iMessageが使えない(というかMMSが使えない)というのは、かなりの残念ポイントなんだけど、正直スマートフォンのキモであるネットワークが使えるという意味では、au版は快適すぎました。ネットが「普通に」使えるってのが、どれだけ快適か思い知りました、softbankの時は、ネットにつながらないことがあっても仕方ないかと思っていたけど、やっぱ、それって、不便なことだったんです。WEBもメールも、動画もストリームも、いつでもどこでも「ちゃんと」使える。これは、僕の日常生活も変わっていきそうです。今回の「体験」は、あくまでも僕と僕の活動範囲におけるものなので、他の方が同じ「体験」や「体感」をできるとは限りませんが、au+iPhone4Sに変えて数日の僕の感想でした。Tweet2011年10月24日ついかっとなってau版iPhone4S予約したiPhone4からiPhone4Sに買い替えたいなーと思いながら、なかなか思い切れなかったのは、auに乗り換えるべきか、そのままsoftbankにしておくべきか悩ましかったからです。ネットを見てみると、auに変えたらすごく快適になったという声も。スピードテストでも、auの方が早い、SBの方が早いとどちらとも言えず。やって、ずっと悩んでいたわけです。週末、妻の人(auのスマホ使用)とでかける先々で、僕のiPhone4がアンテナ2本とか圏外とかになっている場所で、常にアンテナフル立ち。憤る僕の横で、すらりとスマートにネットを見ている妻の人。au版iPhoneではiMeessage使えないのも知ってる。ダウンロードが通話でぶちぎられちゃうのも知ってる。SB版のW-CDMAがいい感じってのも聞いた。旧800MHz帯が使えないと、auの快適さが失われるんじゃないって声も聞いた。このまま、SBにしていた方がいいのかもしれない。iMeessageやFaceTime以前にネットにつながらなきゃパケットも送信できないし、通話でブチ切れるダウンロードのリクエストもすることができない。SBが早い、auが早い、っいう速度比較の前にネットにつながらないんじゃ、なんもなんない。