2015/4/24に開催された wakamonog x ssmjp x BIGLOBE = wasabi イベントで発表した資料です。http://ssmjp.connpass.com/event/13173/ This is lightning talk presentation for study event in Tokyo.Read less
iOSアプリの開発の話題は、ライブラリやツール、APIの使い方に始終しがちなので、ちょっと違った方向から書いてみる試み。 意図的に発散させてみようと思ったら、思った以上にまとまりがないのですが、まあそれはそれで。 私見です。 iOS SDKをよく知る 標準のAPIを呼べば一発のところを、自力でなんとかしようとして死亡みたいなことがありがちです。 API Diffを読む。ドキュメントを読む。ヘッダファイルを読む。 ライブラリも使うだけでなくて、コードを読むと勉強になります 状態の数とスコープを抑える GUIのアプリケーションは増え続ける状態との戦いです 前提を作らない。B画面はA画面から呼び出されているはず、など 例えば、Promise系のライブラリやReactiveCocoaを使う 成功/失敗/未解決を一つのオブジェクトで表現できる UIコンポーネントはアニメーションを意識しなくても雑に使
Feb 17, 2015 昨年末にはてなの@cockscombさんと@yashiganiさんがつくっていたSwiftでenumとジェネリクスを活用したかっこいいAPIクライアントを書くが 面白かったので、これを参考にしつつSwiftらしい堅牢で使いやすいAPIクライアントを考えてみました。 目標としたのは以下の3つの条件を満たすことです。 レスポンスはモデルオブジェクトとして受け取る (便利) 個々のリクエスト/レスポンスの定義は1箇所で済ます (変更しやすくしたい) リクエストオブジェクトはAPIクライアントから分離させたい 例にはGitHub System Status APIを使用しています。 サンプルコードはGitHubに上がっています。 APIクライアントのインターフェース APIの呼び出し用に用意されたメソッドはcallのみで、callに渡すリクエストによってレスポンスの型が変
by @mixiappwchr アプリ向けのAPIの開発時に気をつけてもらえるとうれしい&メンテナンスや実装コストが下がる点をつらつら書きます。 データ構造について データを返すとき、一定のルールを守って返す。例えば当然ですが同じデータ構造はもちろん、似たような構造もルールを作ってproperty名などそろえておく。relationやlistで返すときもどのデータ構造なのかがpropertyで明確にわかるようなっているようにする listを返す場合の形式やpagingが必要な場合の形式はそろえる。配列のデータがない場合も考慮しておく。例えば、データがない場合にNULLにするか or 空配列にする or property自体がないなどきめる pagingの場合とか複数のパターンが存在することを覚えておくと幅が広がる。単純なページング or twitterみたいなsince_idなど起点id以
iQONのiOSアプリはまだ全てObjective-Cで記述されています。 Swiftへの移行については「たいしてパフォーマンスが上がるわけでもないし…」と思って渋っていました。 そんな中、オフィスの移転をきっかけに来客の受付システムをiPadアプリで作ることになりました。 スクラッチでアプリを作るのならSwiftで、ということでSwiftで作りました。 今回は、受付システムの社員...iQONのiOSアプリはまだ全てObjective-Cで記述されています。 Swiftへの移行については「たいしてパフォーマンスが上がるわけでもないし…」と思って渋っていました。 そんな中、オフィスの移転をきっかけに来客の受付システムをiPadアプリで作ることになりました。 スクラッチでアプリを作るのならSwiftで、ということでSwiftで作りました。 今回は、受付システムの社員を呼び出すデータ通
注意(2016/01/29追記) Parseサービスの終了が発表されました。 利用できるのは2017/01/28までだということです。 Facebook Shutters Its Parse Developer Platform | TechCrunch http://techcrunch.com/2016/01/28/facebook-shutters-its-parse-developer-platform/ Moving On http://blog.parse.com/announcements/moving-on/ こんなに便利なサービスが終了してしまうのは残念でなりません。。 (一応ParseサーバーとMongoDBのマイグレーションツールが公開されるということなので 自前サーバーで管理すればParseと同じようなものを動作させることは可能かもしれません。) 背景 最近個人で掲
この記事ははてなエンジニアアドベントカレンダー2014の16日目です。昨日はid:nobuokaによる「【Retrofit を読む】 利用者が定義したインターフェイスに実装を提供する Java ライブラリの作り方 【リフクレション】」でした。 こんにちは。はてなアプリケーションエンジニアのid:cockscombです。 Webと連携するスマートフォンアプリを開発するとき、Web APIを抽象化したAPIクライアントを作ることがよくあります。これはWeb APIのエンドポイントとメソッドを紐付け、パラメータに名前をつけて、返ってくるJSONのレスポンスを何らかのクラスに当てはめ型付けする、といったようなものになります。 Swiftのモダンな言語機能を利用して、このAPIクライアントを書きましたので、以下に詳解します。例としてGitHubのStatus APIを取り上げています。 またネットワ
この記事は CyberAgent エンジニア Advent Calendar 2014 9日目の投稿です。 昨日は@stormcat24 さんの開発効率化への道は一日にしてならず - tehepero note(・ω<) でした。 自分は4ヶ月ほど前にサーバサイドJavaからiOSに転向し、弊社の中で最も息の長い(?)iOSアプリの開発チームにジョインしました。利用者数も多く事業インパクトの大きいアプリですが、ちょっと前からSwift移行を着々と進めています。 Swiftが登場して6ヶ月、ネット上に良い情報が沢山転がっていて目新しい事は書けないんですが、ここでは既存のコードベースをリプレースしながら感じたSwiftの良い所でもまとめてみようと思います。 実際に現場で活きている機能 まだ書きはじめて1ヶ月ほどなので、膨大なSwiftの新機能のうち一部しか触れてはいないですが、はやくもコード
ワウペダルが好きです。ギターのカッティングにかけて遊んでいるとあっというまに時間が過ぎていきます。そんなわけでどこのご家庭にもあるiPhoneとJavaScriptでワウペダルを作ることにしました。こんなやつ。 JavaScriptでiPhoneの加速度センサーとWeb Audio APIを使ったワウペダル作った。 http://t.co/rGDHh5FaWb https://t.co/erfjy9tL80— aike (@aike1000) 2014, 10月 20 ■作り方 まず、Web Audio APIでフィルターを作ります。 Biquad Filterを作ってバンドパスフィルターに設定するだけです。簡単。Qの値を少し大きめの4くらいにしておくとワウらしいクセが出ます。あとは0.0〜1.0の引数の値に応じてフィルターの中心周波数をセットする関数setWahPos()を用意しておきま
「そんなん簡単やろ」と思いますよね。 たとえば、「UITextField 文字数制限」でググれば山のようにブログ記事やらコードが出てくるし、Stack Overflow に載ってるコードのコピペ一発で解決しそうに思えませんか? 実は文字数制限をつけたテキストフィールドはそんなに簡単な話ではないのです。 shouldChangeCharactersInRange:replacementString: は使えない子 今回はこれに尽きます。 UITextField や UITextView のデリゲートで呼ばれる textField:shouldChangeCharactersInRange:replacementString: やtextView:shouldChangeCharactersInRange:replacementString: は使ってはいけません。 より正確に言うと、使うとき
iOS/Androidアプリを作る際に理解しておいて欲しい「Model」という役割について説明します。わりと意識していないケースがあるので、チェックしてみてください。Read less
WWDCで発表されたiOS 8のポイントは、HealthKitとかHomeKit、UIの微修正…だけではありません。iOS 8のどこがもっと強力になっていくのか、こちらですべてまとめていきます。 HealthKit アップルはHealthkitという新APIを作りました。デベロッパーはこのAPIを通じて、ユーザーの健康データのデータベースにアプリを接続させることができます。 それはApp Storeで買えるアプリだけでなく、医師が使うような特殊なアプリでも同じことです。なのでたとえば病院で血圧とか血糖値の検査を受けると、iPhoneで結果データの通知を受け取れます。このデータはプライヴェートで保存でき、さらに他の医師と共有することもできます。 HomeKit スマートホームを実現するためのAPI、HomeKitも発表されました。これによって、iOSから家のスマート家電とか設備をコントロール
Cocoaの並列処理(GCDとNSOperation/NSOperationQueue)に関するまとめです。この記事ではいわゆる「スレッド」については扱いません。スレッドについては、前に記事を書いたのでそちらを参照してください。 Cocoaのマルチスレッドシステム - $ cat /var/log/shin スレッドによる並列処理からの脱却 スレッドは、歴史のある並列処理のための概念ですが、OSのカーネルの方にも密接に関わりがあるなど、抽象度は低めと言えます。 そこで、Cocoaでは、並列処理のための抽象度の高いインターフェースが提供されるようになりました。それがGCDとNSOperation/NSOperationQueueです。これらを使えば、スレッドを何個作成してタスクをどのように実行するか等の細かいことは、ランタイム側が全て決定してくれるので、ユーザは、並列処理したいタスクを定義し
みなさん RubyMotion 書いてますか! 僕は上々です! 最近は割とまっとうに活動しているのでドラゴンクエスト10バージョン1.3 の新職業は全然レベルが上がりません。バトルマスターはまだレベル 53 です。仕事とゲームの両立って難しいですね、参っちゃいますね。 それはそうと、RubyMotion は Xcode を使わなくても iOS 開発ができるというのが非常に嬉しいところなのですが、Emacs であの長ったらしい Cocoa API の補完をどうするかというのは積年の悩みでした。いちおう gtags を使って補完するみたいなバッドノウハウがあったりしますが、うまく動かなかったりで結局ちゃんと補完できてる人は周りにはいなかった。挙げ句には RubyMotion の補完それだけのために Sublime Text 2 に浮気する連中まで出る始末。 Emacs 界の終わりや!「誰か!救
HBFav を 2.6 にバージョンアップしました。新機能としてタイムラインの自動更新機能を追加しました。 これまではタイムラインなどで新着記事を取得する場合、都度、手動で Pull to Refresh (引っ張って更新) を行う必要がありましたが、新しいバージョン 2.6 からはその必要がなくなります。ただし新ユーザーページ設定がオンの場合にのみ限り、本機能が有効になります。 我ながら、本機能でずいぶんと使い勝手が良くなったなあと思いました。特にプッシュ通知と併用すると、プッシュで配信されたエントリが HBFav を開いたときにはもう反映されるようになり、もはやネットワークの通信待ちすら発生しません。これは想像以上に快適で、あるエントリを読んでる間に配信されてきたブックマークもすぐにチェックできるので中毒性が増・・・ じゃなかった、とても便利です。 なお、プッシュが有効じゃなくても更新
Pushover makes it easy to get real-time notifications on your Android, iPhone, iPad, and Desktop (Android Wear and Apple Watch, too!) Powered by Pushover With our Android, iPhone & iPad, and Desktop Browser clients, you can receive unlimited push notifications on all of your devices from dozens of websites, services, and applications that already integrate with Pushover. Just supply your Pushover
「やったーDiablo3のiPhoneアプリできたよー(^o^)ノ」 この週末知人とハッカソンに行ってきました。何を作ろうかなと思っていところ、そういえば先日 Blizzard が Diablo3 の Web API をリリースしていたのを思い出しまして、RubyMotion で Diablo3 の API を叩くライブラリ(の基本的な部分)を作りました。 https://github.com/naoya/Motion-Diablo3 Diablo 3 の Web API http://blizzard.github.com/d3-api-docs/ Web API は素直な JSON over HTTP で Restful なそれになっていて、この辺やっぱり Blizzard はセンスが良いなと感じました。 API で取得できるのは今のところ、Battle.net に保存されたアカウント
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く