2013/10/16

2013年夏期インターンシップ作品が公開されました

後藤です。

先日、とうとう大学生の夏期インターンシップで制作してもらった作品が公開されました!

残念ながら、前期の子たちの作品は UIや操作性の部分で審査を通らずリジェクトされてしまいました。そのあたりをこちらで修正してしまうと学生さんたちの作ったアプリでなくなってしまう ということで、今回はアプリの公開はできません。が、作品紹介ページは残しているので、前期の皆さんががんばってくれた雰囲気が伝わればと思います。

後期(チームTNKT)さんのアプリは下記の紹介ページからiTunesStoreへのリンクを張ってありますので、こちらもよろしければご覧ください。無料で遊べます。

(前期)スリプレ 〜Tree Play The Ball〜
(後期)MUKA2BALL


これで、私の夏期インターンシップに関する作業はほぼおしまいになります。入社して当時は4ヶ月の身ではありましたが、私がその間で学んだ社会人にまつわるエトセトラを伝えれたのではないかな、と思います。
ケイフィールドのインターンシップはこれからも試行錯誤しながら成長(という名の改善)を続けていきますので、これからインターンシップへの参加を考える学生さんは、ぜひケイフィールドで 楽しみ悩みながら色々と経験していってください!

後藤でした。

2013/10/07

インターンシップ作品の申請が完了しました/iOSアプリ申請時の色々

後藤です。

大学生のインターンシップに参加された皆さんにはメールでも連絡しましたが、インターンシップ生のみなさんが作ったアプリ2つをiTunes Connectで公開完了しました! 特に前期の皆さんは、大変お待たせしました。何人かメールが届かなかった子がいたのでここでも一応報告しておきます。アプリの公開は順調にいけば2週間後くらいなので、公開までもう少しお待ちください。
ケイフィールドのサイトのリニューアルがあるとかないとかという話があり、サイトからのリンクはまだしばらく繋げられなさそうですが、作品の紹介ページ自体は完成しているのでこちらにリンクを貼っておきます。

(前期)スリプレ 〜Tree Play The Ball〜
(後期)MUKA2BALL


後藤はアプリの申請を初めて行いましたが、いくつかハマったことがありましたので、今後のためにも一応メモしておきます。
(※以下の情報は2013年10月4日時点のものです)


■ 3.5インチと4インチの両方のスクリーンショットが必須だった
アップルの公式ドキュメント(日本語)を先月くらいに見たときは960×640があればいいみたいな風だったのに、いざサムネイルをアップして登録してみたら4インチのもアップしろという赤字が出てきました。英語のドキュメントも見なきゃいけなかったのか、はたまたiOS7が公開になって新しくなったのか… 色んな申請手順とかのブログさんも拝見していたのですが、どこも書いてあることが違ったりでよくわからず、とりあえず公式ドキュメントに従って用意していたのですが…。3.5インチと、4インチ両方必須です。

■ 開発者のお金を払っているアカウントをCode Signing Identityのところで指定しないとValidateできない
詳しいことはよくわからないのですが、お金を払っているアカウントのチームの人なら誰でもよいのではなく、そのお金を払っている人のアカウントの秘密鍵がないとValidateが通らない=チーム内なら誰でもいいわけじゃなく、お金を払ってる人のアカウントでしか 公開用アプリのアーカイブを作れない ということになっているようです。ここと、これはわたしのミスなのですがAppIDを発行し忘れていたことで かなり時間を食ってしまいました。アプリの申請内容自体は、ネットやAppleのドキュメントで調べた通りだったのでけっこうスムーズに済んだのですが…。

■ Missing recommended Icon fileというメールがきた
アプリをSubmitしてすぐに、自動のコード解析ツールで判定して、こういう点があるからrejectされる可能性があるよというのを自動でメールしてくれるみたいです。
今回のは、120pxのアイコンが含まれていないというやつでした。インターンシップ時点ではまだXcode4だったため、4でビルド・アーカイブしてSubmitしたのですが、Xcode4だとそれは自動的には作られないんですね。iOS7からは120ピクセルのアイコンも必須みたいで(たぶんXcode5だと自動的に作られるんだと思いますが)、それが含まれてないからダメだという内容だったと思います。今回のものは、Xcode4でどうしても作る必要があったので、手で120ピクセルのを作ってinfo.plistのicon files?のところに追加して対応しました。これで一度自分でrejectしてSubmitしなおしたところ、メールはきてないみたいなのでこれで良かったみたいです。

■ Missing Push Notification Entitlementというメールがきた
これも自動の解析ツールで、Push通知関係のコードがあるのにPushの何か手続きだか設定だかがされていないという警告のようです。今回のゲームは2つとももちろんPush通知を使っていないのですが、Unityでビルドされたゲームはおそらく必ずこのコードが入ってしまうようです。というのも、Unityが利用しているというprime[31]というところのプラグインがプッシュ通知とかの機能も実装しているようで。
参考のサイトさんを見てもprime[31]の公式を見ても、AppControllerPushAdditionsというファイルを削除すれば大丈夫みたく書いてあるのですが、自分の手元のUnityでは現在の最新バージョンだからなのか、それらしきファイルが見当たらず…。(UnityAppControllerというのはあってその中にNotification系のコードがちらほらあったので、そういうふうに仕様が変わったんでしょうか?)
どうしたものかと思っていたのですが、Unityのフォーラム(英語の)を見ていたら、これに関してはコードが入っていてもPush通知を使っていなければリジェクトされることはなかったというような声がいくつかあったので、そうだと信じて私もReview notesに Unityで作ったゲームなのでプッシュ通知のコードが含まれていますがプッシュ通知は使ってません というようなことを拙い英語で書いておきました。これでダメだったらまたここに追記します。
13/10/17追記:そんな感じで大丈夫でした。


参考:
iOSな日々: iOS7:アイコンサイズの追加対応について
iOSアプリを申請した時に「Missing Push Notification Entitlement」というメールを貰った時の対処法 - 強火で進め
Missing Push Notification Entitlement

2013/10/03

【Objective-C/iOS7】sizeWithFontをsizeWithAttributesに書き換える

後藤です。

iOS6から7になり、deprecatedになったものの一つにsizeWithFontがあります。
int width = [_label.text sizeWithFont:_label.font].width;
みたいなものなど。
かわりにsizeWithAttributesを使えと言ってきますが、sizeWithFontはUIFontだけどsizeWithAttributesはNSDictionaryだ、しかもUIFontで自分で作ったやつじゃなくてラベルのフォントをとかどうDictionaryに変換したら、、
と思ってしばらく(数時間)放置していたのですが、気が向いて検索したらあっさり見つかった(でも日本語ではまだなさそうだった)ので、メモしておきます。
int width = [_label.text sizeWithAttributes:@{NSFontAttributeName:_label.font}].width;
とすればいいようです。
iOS6からNSAttributedStringというのが追加されたそうで、NSFontAttributeNameはそれの属性のひとつ。Appleとしてはそっちを使うようにしてほしいということなのでしょうか。


参考:
objective c - Replacement for deprecated sizeWithFont: in iOS 7? - Stack Overflow
NSAttributedStringによる文字装飾 – Cyber Passion for iOS

2013/10/01

JAWS FESTA Kansai 2013に行ってきました

後藤です。

土曜日に行われたJAWS FESTA Kansai 2013に、ケイフィールドの社員全員で参加して参りました。

各自で自由に参加したいものに参加する感じだったので、他の方も記事を書くかもしれませんが(ブログを書くまでがJAWS FESTAだそうなので…)、私は主にCDP道場(初心者編)とRedshift Girls、スペシャルパネルディスカッションに参加しました。ので、その感想を書きたいと思います。

まずCDP道場。内容は、以前立ち読みしたクラウドデザインパターン実装ガイドやWikiや、公開されているプレゼン資料などで既に知っている内容がメインでしたが、後半のハンズオンでは実際にDirect Hostingパターン・Cashe Distributionパターンを、S3とRoute53やcloudfrontを利用して構築しました。Route53とcloudfrontを利用するのが初めてだったので勉強になりました。
AWSは、公式のサービスページを見ても それがどういう使い方をすればいいどんなサービスなのかが初心者にはわかりにくいように感じているので、こういった機会に実際に触ると理解が深まっていいなあと思いました。もっとCDPについて勉強したら各サービスについて使わずに分かっていくようになるんでしょうか。

そして、Redshift Girlsさんの講演です。どんまいこさんの名前などをどこかで聞いたことがあったりして、Girlsと書いてあるし女子としては参加すべきかなというのと、Redshiftについて優しくわかりやすく説明してもらえるとのことで、私でもついていけるかなと思い参加しました。
スライドはこちら。サーバーワークスさんが面白い会社さんだなというのは以前の東京の際にも思ったのですが、Redshift Girlsさんの講演もまさしくそんな感じでした。ユーザーグループだから許されるノリの講演、巫女さん衣装のどんまいこさん・ぎょりさん… 写真を撮りそこねたので画像はないですが、インパクトがものすごかったです。でも真面目な内容もとても勉強になりました。Redshiftが何なのか公式のページを見てもあんまり理解できないまま参加していたのですが(そもそもデータウェアハウスが何かすら調べていなかった)、無料分のないRedshiftについて実際に画面を見せながら説明して下さったり、体を張って説明して下さったりで、どういうサービスなのかよくわかりました。
懇親会のとき2人に声をおかけしたのですが、2人とも入社3年目と4年目の営業さんで、人前であのように発表を行ったり、AWSの知識も技術者のはずの私より多かったり、私もあと2年くらいしたらあんな風になれているのかなぁとそわそわしました。(AWSの知識などは、サーバーワークスさんだからこそなんでしょうか。)弊社の社長は 学生の頃からもっとすごいことをしている人もいるから入社年数は関係ないし、1年目でプレゼンを行ったりする人だっているというふうに言っていましたが、いわゆる“普通”の学生はそういうスキルなしに入社し社会人になってから覚えていくことが多いと思います。彼女たちがそうだったかは分かりませんが、その可能性がきっと高いと思うので、それでああやって人前に立てるのはやっぱりすごいなと感じたのです。私も……がんばります。

そして最後。SAP、AWS、Microsoft、ISIP、cloudpackのエバンジェリストさんたちによるスペシャルパネルディスカッションです。後藤さんと堀内さんを知っていて、渥美さんともご挨拶をしたことがあるので、(しかも残りのお二人もSAPとMicrosoftという超大手企業のエバンジェリストですし、)どういう話をされるのかなと興味があって参加しました。
内容はクラスメソッドさんのブログでとても詳しいレポートが公開されているので、参加されていない方はよければそちらをご覧ください。 5人ともとてもすごい方だと思うので私が偉そうに何かを語れるようなことはあまりないのですが、堀内さんや後藤さんが元々はエンジニアだったというのが、当然といえば当然なのかもしれませんが初耳だったので意外でした。そして「エバンジェリストは全てを知っていなければならない」ということで、普通のエンジニアよりも責任感や勉強が必要なんだと改めて知りました。

今回のJAWS FESTAへの参加を通して、堀内さんもパネルディスカッションで話していらっしゃいましたが、AWSは中の人との距離が本当に近いと感じました。業界の有名人のはずの堀内さんや小島さん、後藤さんや河野さんなどが私のような者の顔を覚えてくださっていて、話すことのできる機会があります。そして同じAWSを気に入って仕事をしているような、前衛的な方たちと知り合う機会があります。知り合った方々に、私はまだ知識の少ない新人くらいにしか覚えてもらえていないとは思いますが、もっと知識をつけて 技術的な話とかをできるようになったり、自分から仕事をもらえるようになったりしたいなと、JAWSの集まりに参加するたびに思います。精進したいです。