もともと日本向けに作られていたPairsのモバイルアプリを、どのように国際的に展開できるようにしたのか。国際化・ローカライズの対応を進めたときの実際の流れや工夫を、モバイル開発の視点からまとめています。

この記事ははてなエンジニアアドベントカレンダー2014の16日目です。昨日はid:nobuokaによる「【Retrofit を読む】 利用者が定義したインターフェイスに実装を提供する Java ライブラリの作り方 【リフクレション】」でした。 こんにちは。はてなアプリケーションエンジニアのid:cockscombです。 Webと連携するスマートフォンアプリを開発するとき、Web APIを抽象化したAPIクライアントを作ることがよくあります。これはWeb APIのエンドポイントとメソッドを紐付け、パラメータに名前をつけて、返ってくるJSONのレスポンスを何らかのクラスに当てはめ型付けする、といったようなものになります。 Swiftのモダンな言語機能を利用して、このAPIクライアントを書きましたので、以下に詳解します。例としてGitHubのStatus APIを取り上げています。 またネットワ
iPhone6,6Plus サポートとか LaunchScreen.xib とか Size Class とか考えると、もはや Autolayout は必須な感じになってきてます。 http://d.hatena.ne.jp/shu223/20141002/1412209257 で、Autolayout ✕ UIScrollView の例の問題(UIScrollView のサイズを superview との制約で動的に変えるときにその中身も動的に変えたい、ってやつ。こんな雑な説明でもハマったことある人にはわかっていただけるかと・・・)、Apple 公式でこんなドキュメントが出てますが、 Technical Note TN2154: UIScrollView And Autolayout "Mixed Approach" とかなんか筋が悪い感じだし、"Pure Auto Layout Appr
iOS開発に欠かせないiOS SDK、フレームワークの機能。でも、どの機能を使うべきか悩んだりすることはありませんか? そこでDeNA吉田正史さんが、作りたいアプリ・機能から逆引きできるiOS SDK機能、フレームワーク概要のまとめをレポートしてくれました。これはすごい便利です! by 馬場美由紀 (CodeIQ中の人) iOS SDK機能、フレームワーク概要のまとめと機能別逆引き CocoaPodsの登場によって、昨今のiOS開発ではとても簡単にライブラリを導入することができ、皆さんも多くの機能開発が楽になっていると思います。 ただiOS SDK自身にも非常に多くの機能やフレームワークが提供されており、外部ライブラリを利用しなくても実現できることも多くあります。 そこで、現状どのようなフレームワークや機能が提供されているか、簡単にまとめてみました。 機能の逆引きで何ができるかを記載してい
delegateメソッドのtypoがcompile時にすぐわかる Swiftではoverride keywordが導入されて、class methodのoverrideを明示的に示すようになった。というか、super classのmethodをoverrideするときは必ずoverrideと書かないといけない。 Objective Cでは、methodが基底クラスのoverrideなのか、それとも単にlocalで定義されているmethodなのか、コードを見ただけでは判別する手段はなかった。 optionalなdelegateを実装しているはずなのに、全然呼ばれないのでよくよく調べてみるとtypoだったという経験が必ず皆さんおありと思うが、Swiftでは基底クラスで未定義のmethodのoverrideはcompile時にerrorになるので、そんな問題はもう発生しなくなる。 コードの見通し
Swift出ましたね! WWDCで突然の言語発表で驚きです。 無料のドキュメントが提供されており、ざっと読んでみた限り最近の言語のエッセンスを色々と取り込んだ良い意味で特徴のない(かなり書きやすそうな!)言語という印象を受けました。 今回はそんなSwiftの中のoptional valueなどと呼ばれている言語仕様について取り上げていきます。 どれのこと? ドキュメント中に出てくる以下の様な記述です。 var optionalString: String? = "hello" optionalString = nil println(optionalString) このString?、なんのことだかわかりますか? このクエスチョンマーク、どうやって使うの? 使い方を見ていきましょう。 まず普通の変数宣言で以下の様に書いてみましょう。 var normalString = "aaa" nor
画像を表示しようとしたら遅いよ! 外部データを取ってきて表示するときにまずはまるのが画像の処理だと思います。非同期で必ず処理しましょう。 画像の非同期ロードはライブラリを使った方が早いと思います。 ヘッダーやフッタをつけたいよ! tableView.tableHeaderView tableView.tableFooterView に突っ込む方法を書いてあるのが多いんですが、今回はもっと簡単な方法としてStoryboardなどでこれらのビューを直接突っ込んで管理できるのでおすすめ。 テーブルビューの上や下にUIViewをドラッグすると UIViewをIB上で直接追加できます。 後はIBでレイアウトをくめばok 使用するクラス、フレームワーク、ライブラリ ビュー UITableViewController https://developer.apple.com/library/ios/doc
HTML5/JavaScriptで作成したアプリケーションをラップし、ネイティブアプリケーションとして扱える「ハイブリッドアプリケーション」は、高い生産性でモバイルアプリケーションを開発できるといったメリットから注目されています。 しかし実際に自分でハイブリッドアプリケーションを開発しようとすると、例えばiOS用ならMacOSのマシンを用意してPhoneGapの環境を整え、ビルドしたアプリケーションをいちいちiPadやiPhoneに転送して試すなど、それなりの手間がかかります。Publickeyでは以前からハイブリッドアプリケーションに注目して紹介してきたため、時間があれば自分でもHTML5とJavaScriptで作ったアプリケーションをハイブリッド化しみてみようと思いつつ、なかなか開発環境を整備するに至りませんでした。 そこで思い出したのが「Monaca」です。Webブラウザ上でHTML
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く