あたらしものずきっ!

試してみたものとか、遊んでみたものを色々記してみます。

2012年元旦

あけましておめでとうございます。
2012年は以下を目標に進めようと思います。

  • iPhoneアプリのリリース
  • 技術系のログを書く
  • 楽しんでいることについてなるだけ頻度を上げて書く
  • iPhoneアプリ開発系の勉強会になるだけ顔を出す
  • 北海道へ旅行に行く

転職活動は1月半ばに完了予定で、恐らく仕事初めは2月からになりそうです。

iOSアプリ開発者として就職活動をする場合にたしなんでおきたい6つの事

@TonnyXu さんから引き続き、iOS Advent Calendarの13日目となります。

iPhoneアプリ開発もといスマートフォンアプリ開発者として就職活動中の @haoyayoi です。iOSもといスマートフォンのアプリ開発で食っていくお仕事につきたい場合、事前にどれだけの内容について最低限たしなんでおけばよさそうか、6つほどピックアップしてみました。

1.iPhoneアプリを沢山作って申請しておこう

某転職サービスを利用して、サービス担当者とお話をして強く言われたのが、

「皆さん、iPhoneアプリ作れます、って言う割に、何を作ったんですか、ってきくと、口ごもるんですよね〜。」

一応数年前に一本、そして先日もう一本仕上げていた身だったので、「作ってないのに作れます、ってのは流石にないですよねー」とかえしたんですが、2本はやっぱり少ないなと自分でも思うところです。(1年6ヶ月程はLL及びサーバの知識を付けるのに精一杯だった、とか泣き言ですね、はい。)

2.githubにアカウントをつくって利用しておこう

某転職サービスの担当者から更に言われた事が、

「つくっていらっしゃるんですね!ではソースコードとか拝見させていただけますか?」

さすがに有料アプリのソースコードを積極的に公開する人はそうは居ないと思うんです、はい。

また、某らいおんなiPhoneアプリのこともあって、projectを丸ごとアップするのには抵抗ある開発者の方もそこそこいるはず。なので、何か小さめなサンプルプロジェクトを公開するのも手かもしれません。もしくはgistとか。

3.Linuxコマンドラインになれておこう

とはいえ、ボリュームがあることも確かです。とりあえず git に慣れておくことは大事だと思われます。「Xcodeからじゃないとgit触れません(テヘ」なんて口にしたら、空気が固まる可能性もあります。

あたりをたしなんでおくと、さらに色々と頼れる人材になるかもしれません。

4.サードパーティフレームワークにもなれておこう

今日では、

などがありますね。

Androidアプリを手がける手段にもなるので、開発領域が広がる点では強力な一手だと思われます。

5.サーバにも慣れておこう

サーバ上でWebAPIを作れるようになれば、iPhoneからサーバを通して色々なアクションがとれるようにもなります。LLを覚える必要もありますが、Objective-Cを覚えられたのだから大した労力でもないでしょう。

レンタルサーバとしては、

など、他にもいくつかありますが、とりあえずはお金そこまで掛からない場所を選びたいところです。

WebAPIの開発言語としては、

などありますが、php覚えればとりあえずは色々大丈夫だと思います。

MySQLも操作できるようになっておくとなおよしです。

また、iPhoneアプリのサポート用ページをCGIなどで書き直してみるのも手ですね。

6.javaも覚えてみよう

Android開発にも思い切って取り組んでみましょう。「も」というにはボリューム感は若干ありますが、Titanium Mobileなどではキャッチしづらいディープな部分も掴めるようになるはずです。Eclipseの操作に馴染む必要もありますが、Xcodeに馴染んでいるのなら大した問題ではないでしょう。ただ、実機確認という点が厳しいかもしれません。

まとめ

6つほどピックアップしてみました。いかがでしたでしょうか。

なお、世の中

  • iPhoneネイティブアプリ開発者として採用されたのに、サーバ上でLL触る仕事ばかり任されてobjc全然触れなかった
  • AndroidとiOSのネイティブアプリ開発なんてやってる内容は同じもんだとしてプロジェクトを任された上で、仕様がネイティブ機能ガン無視で、最終的に炎上して焼結した。
  • ネイティブのUIとか画面なんて全部html5で置き換えられるだろうと主張されて、ネイティブにタッチできない

なんてことはよくあります。

ネイティブアプリ開発について、スマートフォンの特性及び操作体験について、きちんと理解している会社に就職したいものですね。

明日は @kaz_29 さんです。

はてなブログはじめました

色々と機能が整ってるらしいので、乗り換え候補として始めてみました。PCからの編集は わかりやすいなーと思いつつも、iPhoneからみるとどうだろうと確かめてみたところ、

このようにサイズ最適化はされていないようなので、これからだなーと思いました。

dotcloudでNet::Facebook::Oauth2を使ったさいにハマりやすいかもしれないところ

最近流行のFacebook上で、お手軽にFacebookアプリをつくるために便利なModule Net::Facebook::Oauth2というやつがあります。

お手軽に使えるものを更にお手軽にdeployしたくて延々とdotcloudを弄っていたのですが、httpsがだめということでaccess_tokenがとれない。万が一ということもあって、Crypt::SSLeayとNet::SSLeay、IO::Socket::SSLをも導入してみたけど、コレでもダメ。

dotcloudさんもFacebookの前に敗れ去るのかなーとか思いつつ、dotcloud上にinstallしたNet/Facebook/Oauth2.pmをちょっと弄ってみたところ、69行目あたりの$responseをdumpした結果に

LWP will support https URLs if the LWP::Protocol::https module is installed.

ってでてた。通常のdotcloud logs xxxxではこれが吐き出されてなかったから、気がつかなくてハマりっぱなしだった。

LWP::Protocol::https を追加して無事認証終了。

YAPC::Asia 2011をへて

とかタイトルつけたけど、中身はあんまりYAPC関係ないかもしれません。

非公式後夜祭 in 大和路にて、いつものように他の参加者と話さずに只管食って終わりそうになって、「これじゃいかんよね」とさいきろんさんの隣にお邪魔して、iPhone4S弄っておりました。話すキッカケがなかったので…って、これじゃ意味がありません。

丁度隣席に弊社エンジニアの@karupaneruraが来て、LTやTALKについて色々とトークが盛り上がり始めたので、ここぞとばかりに色々とぶっちゃけ質問してました。斜め前にいるのが@nipotanさんだということに全然気がついてなかったのですが、まぁ大した事じゃない。

Q.LTってなんか外すと寒くなったりするーされたりして怖そう
A.外したりスルーされたりしても、5分程度ですむから大丈夫

Q.でもLTってトークネタむずかしくね?
A.初めての人が慣れるには良い場所。嫁自慢とかふるさと自慢でもなんでもいい。

Q.TALKに質問ってしにくいんですが
A.質問はどんどんすべき。質問がずれてる場合、講演してる人がそもそもイケテないトークの場合あるから気にしない。

Q.TALKの質問時間って数秒、あるいは数十秒でちょーみじかいんですが
A.TALKの時間ギリギリぴったりに、講演してる人がスライド作ってるのが原因。

自己紹介ばっかりで時間取られるっていうのは、そもそも自身の認知度が低いことを考慮して認知度を上げようと意識してる証拠であるとは思います。人に認知してもらう場合、予め名刺とか首から下げる名刺入れにTwitterアイコン印刷して差し込んでおけばいいらしいです。

しょーもない質問に応えてくれた、@tokuhirom @nipotan @TAKESAKO @miyagawa さんら諸氏の方々、ありがとうございました。

YAPC::Asia 2011 のまともなレポートは、他の参加者の人達が書くであろう素晴らしいエントリーをみてください てへぺろ☆(・ω<)

git pushでdeployな生活をつくる方法

時間が時間なので、さくっと。

gitでpushするとdeploy、というgitでソースコードなど管理してる場合にはかなりお手軽な反映方法なんだけど、その方法が綺麗にまとまってなかった。試行錯誤しつつようやく出来上がったのでメモとして残しておく。

作業した環境は、さくらVPS上のdebiandebianの導入周りとかはやってる人もおおいので割愛。

gitユーザをつくる

adduser --disabled-password git
su - git

リモートのgitリポジトリをつくる

mkdir ~/repos
cd ~/repos
mkdir Hoge.git
cd Hoge.git
git init --bare

vim hook/post-receive
#次の一文を足す
(cd /home/git/www/Hoge; git --git-dir=.git pull)

chmod +x ~/repos/Hoge.git/hooks/post-receive

deploy先をつくる

cd ~/
mkdir www/
cd www
git clone ~/repos/Hoge.git

公開鍵をVPSからlocalに転送して登録

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub to.localhost*~/

あとは、ローカルにリポジトリつくってリモート先を登録するだけ。git pushすると、hookによって、展開先ディレクトリにcloneしたリポジトリ内でpullがかかる。

要点としては、deployする先はgitユーザの公開ディレクトリ、というところ。gitユーザ権限の関係で通常はそこじゃないとhook時に公開ができない。これに気がつかなくてはまった。

dotcloudでmixiアプリをつくる

まだ途中だけど、メモっておいたほうがよさそうなのがだんだん増えてきたので書く。

構成は、Amon2 + Teng。OAuth Signature検証のため、Crypt::OpenSSL::CA::X509とかも使ってる。

osx上でCrypt::OpenSSL::CA::X509を入れようとしたら、何故かパスを認識しなくて「gcc-4.2ないよー」、とか「ppcないよー」、とか怒られて入れるの苦労したのに、dotcloudに上げてみたら何事もなく入ったのはステキだった。

mysqlを設定にかかってるところ。一段落したらまた書くことにする。