vortispy's diary

労働者です

iOSアプリを作った覚え書き

Androidで作ったやつの移植
Androidアプリをつくった覚書 - vortispy's diary

StoryBoardで画面をつくる

ボタンのイベントで関数を動かすときは@IBAction
ラベルと変数を関連づけるのは@IBOutlet
をつかう。
そうするとStoryBoardのConnection inspectorに表示される。表示された関数か変数をマウスでドラッグして画面上の要素につなげると関連付けできる。

CocoaPodsでライブラリを管理

Podfileに必要なライブラリとバージョンを書けばインストールやアップデートを楽にできる

tableview

tableViewが表示されるとき最初に呼ばれるのはviewDidLoad。ここに初期化処理を書く。これは再度表示するときには実行されない。
それぞれのセルが表示されるときにtableView関数が呼ばれる。このなかで要素の初期化を行う。

アルバムから画像を取得する

imagePickerをつかう。UIImagePickerControllerDelegate, UINavigationControllerDelegateの継承が必要。

func addImage(){
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
        presentViewController(imagePicker, animated: true, completion: nil)
}
    
func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]!) {
        //画像が選択されたときにする処理
        //処理終わり

        //この関数を呼ばないと画像選択画面からもどれない
        dismissViewControllerAnimated(true, completion: nil)
}
オプショナル

変数の型を宣言するときに"?"や"!"をつけることでその変数にnilが入る可能性を示す。

var foo: String? = "foo"// nilが入る可能性がある
var bar: String! = "bar"// 必ずどこかで初期化される
print(foo!)// 「nilではない」ことを"!"で示す必要がある
print(bar)// 宣言時に「どこかで初期化される」ことにしたので"!"が必要ない

Androidアプリをつくった覚書

アプリの概要

機能

boketeのようなアプリ。ユーザーがドヤ顔写真をアップロードしてその評価を競う。
必要なのはおよそ以下の機能

  • AWS S3へ画像のアップロード
  • Redisサーバへの登録
  • アプリでの評価をRedisサーバに反映する
  • 画像とその情報をアプリで取得する

画面の構成

一つの画面内にIMAGE LISTとRANKINGの二つのタブを表示する。それぞれのタブはリストでできている。
IMAGE LISTはリストの各要素に画像とその得点および評価ボタンを含む。
RANKINGは1位から10位までを表示し、各要素に画像、得点、順位を持つ。

やったことなど

ネットワーク通信はAsyncTaskを使う

Androidではメインスレッドで画像のアップロード、ダウンロード等の通信を行えない。なので通信を別スレッドで行うためにAsyncTaskを継承したクラスを実装しなければならない。とてもめんどくさい。それを楽にするためにAsyncTaskLoaderというのがあるらしいが使っていないので詳しくは知らない。
AsyncTaskと似たようやつでVolleyというのもあるらしい。
AsyncTaskを使った非同期処理のきほん | Developers.IO
ネットワーク通信用ライブラリVolleyを使いこなす | Tech Booster

リストビューのカスタマイズ

簡単なテキストだけのリストを作るならListViewとArrayAdapterをそのまま使えばよい。テキスト以外の要素をリストにするにはArrayAdapterを継承したクラスを実装する。最低限必要なのはgetViewだけなのでそれほど大変ではない。
現在はgetViewが呼ばれるたびに通信が発生する作りなので、最初に呼ばれたときのみ通信するようにすべきだ。
リストビューをカスタマイズする « Tech Booster
ArrayAdapterをつかったカスタムリスト - なか日記

タブの実装

ActionBarのタブナビゲーションを利用してタブを実装できる。これによりFragmentを切り替えれる。
アクションバーのタブ・ナビゲーション - Android 開発入門

Redis

今回はランキングを作りたかったのでSorted Setsを使った。ライブラリはJedis。

Github

とりあえずなんか実装するときはissueを作る。ブランチを作る。実装したらpull requestを送る。マージされたらissueを閉じる。
APIキーをうっかりプッシュしないように気をつける。

UbuntuでFlash(Pepper)の文字化けを解消する

Opera 24から自動でChromeに同梱されているPepper Flashを使うようになった。
YoutubeやTED Talkを見ていると文字化けが発生した。
Ubuntuフォーラムに解決方法があった。
Ubuntu日本語フォーラム / Hulu利用時の文字化けについて

lubuntu 12.10ですが、以下のようにすると字幕が表示されました。

sudo apt-get install ttf-arphic-uming
cd /usr/share/fonts/truetype/arphic
sudo cp ../takao-mincho/TakaoMincho.ttf uming.ttc

cmap-*, kochi, sazanami等のインストールは不要です。

Ubuntuフォーラム素晴らしい。

2014/04/03

朝は7:30頃に起きたが布団から出たのは8:00ごろ。
洗濯機に洗濯物を放り込む。天気は良さそう。
台所で朝食と昼食の調理。朝食はスクランブルエッグ、昼食はそれにトマトを入れたものとおにぎり2つ。
ぼーっとしてたら食後の歯磨きが15分くらいかかってた。
9:00ごろに洗濯物を干す。
家を出たのは9:15ごろ。暖かいが一応上着を持っていく。
普通に歩くと電車に間に合わないので急ぎ足で向かう。
9:24、駅につく。Googleによると駅までは徒歩9分らしいが絶対に嘘だ。
9:35、改札を出る。数メートルさきにいつも歩く方向が同じ人を見つける。
会社につく。そう言えば朝トイレに行ってないことを思い出す。
先日と同じ作業をする。やはりプログラム組んだほうが良かったのでは。
12:03昼食。フタがちゃんとしまっていなかったらしく汁がこぼれていた。袋に入っていたので被害は最小限だった。
14:40ごろ営業の人が電話をかけていた。「・・・のほう」と何度も言っていて気になった。
16:30、寝てた。
17:00、終業。職場のご婦人がタブレット端末でメールができないというので少し見るが解決できず。
17:31、いつもより一つ後の電車に乗る。
17:47、駅の駐輪場を出たところに駐車場ができていた。前はそこに家が建っており、しばらく前に取り壊されて更地になっていた。今朝までは更地だった。より殺風景になった。子どもが遊んでいた。

静岡大学を退学しました。

なんだかんだで4年間籍を置いてましたが、ようやく退学しました。

4年間なにしてたのか

1年前期は普通に授業受けてました。工業高校卒で多少は知識があったので退屈でした。AO入試で入ったので授業について行くのが大変かと思ってましたが全然そんなことなくて拍子抜けしてました。バイクの免許取りました。バイトを始めて3ヶ月くらいでやめました。
1年後期はほぼ授業に出ませんでした。再受験することを決めたからです。
再受験する理由は学歴コンプレックスからです。「ここではないどこか」を求めていたんです。乙女チックでしょう。受験は失敗しました。12月には諦めちゃったので、センター試験すら受けていません。
受験を諦めてからはネットみてだらだらしてました。この頃にYouTube長友佑都宮市亮が活躍してる動画をみてサッカーを見るようになりました。なんとなく地元のサッカークラブである徳島ヴォルティスを応援しはじめました。
2年前期は心を入れ替えて授業に出てました。でも退屈なことに変わりはありませんでした。結局は試験で成績を出すのに出席点を必要とする授業は糞だと思ってました。
一番好きな授業は数理論理でした。この授業は資料が配られ、それをひたすら教授が読み、解説するかたちでした。ほとんど学生の反応を見ずに進められる授業は「勝手にやれ」と言われているようで最高でした。
2年後期は12月くらいに授業に行くのをやめました。我慢できませんでした。
3年はまったく学校に行きませんでした。とくに何もせず一年間ほぼ引きこもってました。だいたいネットみてだらだらしてました。
4年の春、2013年4月から1年間休学しました。休学中は寮に住めないから安い家賃で面白そうだったギークハウス新潟に引越しました。
ギークハウス新潟の同居人にバイトを紹介してもらって働いたり、働かなかったりして1年なんとなく生き延びました。
そして先月、2014年2月下旬に退学届けを提出しました。

4年間の反省など

受け身すぎですね。授業なんてそこそこにして研究室に潜りこむなりすればよかった。3年の引きこもってた時期にそうしとけよって感じです。
だいたいいつもお金なくてそのくせ働かないので2ヶ月先の生活を心配し続けた4年間でした。
高校生の時よりは身の回りのことを自分でできるようになったけれど、それ以外はあまり成長してないです。

これから

とりあえずバイトを探します。だれか週3で月6万くらいもらえるそこそこ楽なバイトをご存知でしたら教えてください。
5年、10年先の長期的な目標はとくに無いです。楽して自由にくらしたいだけです。年内の目標はバイク買うこととスカパー加入です。