IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
業務でiOSアプリを作っている場合、ほぼ確実にユーザの行動分析用にトラッキングを入れてるかと思います。よくありそうなのだと、viewDidAppearで画面の閲覧ログを取ったり、ボタンタップ時のIBActionメソッドでタップ数を計測したり。 こういった処理自体はせいぜい一行程度だと思いますが、できればUIライフサイクルのイベントメソッドでは行わず、 アプリケーションロジックとトラッキング処理は分離したい といった気持ちがあります。 また、大抵の場合トラッキングはアプリ内の様々な箇所で行い、その数が膨大になりがちです。アプリの改修を行っていく上で、追加や削除といった事も頻繁に発生するでしょう。なので、 計測する場所やタイミングは一箇所で一元管理できる ことが望ましいです。 ここでは自分が今のところこれが良いかな〜と思っている手法をまとめてみました。 ※トラッキングの送信まわり等、ロギング処
ブログでおなじみのクラスメソッドさんの勉強会に参加させて頂きました。 iOS 8とかけて8本のLTで構成された勉強会で、iOS 8で追加された新機能やニッチな技術の紹介がありました。とても勉強になったので、メモと併せてまとめてみます。 なお、本家のまとめはこちらになりますのであわせてご参考ください: [イベントレポート] 世界最速LT大会!?新iOS 8発表!で登場した新機能・ニッチな技術を大公開!! #cmdevio | DevelopersIO LT内容のまとめ 1.ついにiOS 8リリース!今までの歴史を振り返ってみる 大橋さん iPhoneの初期〜iOS 8までの変化を追う iPhoneの機能やiOSでできることの変化について コミュニケーションやメディア、コマースのあり方など、現実世界の変化について iOS 8技術の解説記事を200本出す予定。いま100本出している http:/
WKWebViewについてわかったこと。iOS 8.1.0の時点での情報です。 StackOverflowやDeveloperForumsからの情報と、私がOhajiki Web Browserを開発する過程で得た知識を短めにまとめてみました。 これ以外にもまだまだ細かい部分があるかと思いますが、より良い方法や補足などがありましたらコメント欄で是非とも教えていただければ幸いです。 iOS 9での変更点はこちら: iOS 9 WKWebView 主な変更点をざっくり tmpフォルダ以外は file:/// を使ってアクセスできない iOS8.0.2からtmpディレクトリ以下のファイルに fileプロトコルでアクセスすることが可能になりましたが、それ以外のディレクトリからのアクセスは無効となっています。WKWebViewが普及しない一番の要因はこれではないでしょうか。 こちらで試すことが出来ま
はじめに Swiftのコードは多様な記述の仕方ができるので柔軟でかつ表現力もありますが、チームで開発を行うとどうしても記述の仕方が統一できず可読性も上がりません。弊社(Wantedly)でSwiftのアプリを開発した経験をもとにアプリ開発におけるコーディングスタイルガイドを作成しました。このコーディング規約がベストプラクティスだというわけではなく、Swiftもまだまだ手探りなところもあるので、参考情報としてご参照ください。また、規約の範疇ではないですがエラーになりやすい記述も合わせてフォローしています。 バージョン v0.3 改版履歴は文末を参照ください。 コーディング規約の必要性について Swiftはプログラマがリスクを取ることによってより簡素に端的に記述ができたり、型推論が強力なので型の明記を省略して記述ができます。チームでSwift開発を行う場合は、詳細に記述するのか、省略して記述す
とあるお仕事で、iPad をサポート(= Universal 化)してほしいという要望があり、せっかくなので iPhone 6 / 6 Plus (4.7 / 5.5 inch スクリーン)もサポートしようってことで、新しい Xcode 6 の新しい仕組みである Size Class を使って複数画面対応を行ないました。あと、同じく Xcode 6 から Asset Catalog でベクター形式がサポートされるようになったので、こちらもトライしてみました。 で、そのときに学んだ諸々の断片的なメモです。勘違いもあるかもしれないのでその際は優しくご指摘いただけますと幸いです。 ※ちなみに Size Class やベクター形式画像の使用は iOS 8 以上縛りではありません。単に Xcode 6 の新機能というだけなので。 Size Class の前提知識をつける 「Size Classsとは
ただいま基本動作を絶賛学習中です。 Table View ツール系のアプリで使う場面が多いリスト表示について実装してみたいと思います。 Objective-Cの記事ですが、UITableViewを使うにあたって、事前にこちらの記事を確認しておくと、スムーズに理解できると思います。 [iOS] StoryboardでUITableViewを実装し理解する [4月からはじめるiPhoneアプリ #1] プロジェクトの作成 Single View Applicationでプロジェクトを作成します。 作成したプロジェクトのMain.storyboardを開き、右下のコンテナからTableViewを選択してドラッグ&ドロップでstoryboardのViewControllerに追加します。 次に、先ほど追加したTableViewをViewController.swiftに登録します。 ひとまずこれで
WWDCでのアップルの発表によると、iOS 8 では4000以上もの API が追加されたとのことですが、新しいAPIはどう使うのか、実際に何がどこまでできるのか、といった具体的なところが、英語のドキュメントや動画をながめているだけだと正直あまりよくわかりません。やはり実際にコード書いて動かしてみるのが一番わかりやすい、ということで今年もつくりました、 iOS 8 新機能のサンプルコード寄せ集めアプリ『iOS8-Sampler』 ソースコードは GitHub に置いてあります。 https://github.com/shu223/iOS8-Sampler ※使い方は Xcode 6 でビルドするだけ なので、デザイナーさんやディレクターさんもぜひ最寄りのエンジニアにビルドしてもらってください。 中身について 今回はデザイナー okazu 氏の協力により立派なアイコンやスプラッシュ画像が最初
先日 Go MemoというiOSアプリをリリースしました。 「あとで行く」ためのアプリ、Go Memoをリリースしました Go Memoは週末4日間くらいで作ってリリースしたアプリなのですが、こうしてスピードを出せたのは便利なライブラリのおかげです。 この記事ではGo Memoで使ったライブラリを紹介しようと思います。 便利なiOSライブラリ AFNetworking 言わずとしれた定番ライブラリ。作者の mattt さんも非常に有名です。サーバーとのHTTP通信はほとんどこれに頼っていて、NSURLSession とか自分で書いてないです。 Go Memoでは foursquare API をたたく所で利用しています。 NSDictionary *params = ...; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOp
ReactiveCocoa勉強会関西にてObserverパターンについてお話ししましたので、以下にその内容をまとめます。 Observerパターンは、GoFの23のデザインパターンのうちの一つで、モデルが状態の変化をしビューに通知するパターンです。GUIアプリケーションの開発で多用されます。もちろんスマートフォンアプリの開発においても大変役に立つので、いくつかの例を挙げて見ていきます。 Objective-CのKey-Value Observing static void * Context = &Context; - (void)anything { [object addObserver:self forKeyPath:NSStringFromSelector(@selector(property)) options:NSKeyValueObservingOptionNew conte
こんにちは! なんと早くも2度目の登場です、iOSエンジニアの木村です。 最近、ついに実家から独立しました。 これで電車を気にせず、存分にObjective-Cを書けるかと思うと、もう(…) と言いつつ、ネイティブチームの中で誰よりも早く帰るのですが w さて、今回は今、僕が携わっている「Couples」 で実際に使っているViewの実装について、じっくり書きたいと思います! FacebookのタイムラインのようなUIを実装したいと考えている方は必見です! FacebookタイムラインのUIを再現! Facebookを筆頭に、タイムラインを使うアプリでよく見かける、このUI。「Couples」でもタイムラインの写真の表示に使っています。 写真が横に並び、両端に前後の写真が少し見えています。ユーザーが何も考えなくても自然にスワイプしたくなる、さりげない心遣いが魅力です。実装目線で細かく見てい
Swiftに浮かれているiOS開発者のみなさんこんにちは。Objective-Cの記事を書きます。 手になじんでるものから、良さそうなので使ってみたいものまで、 個人的に筋がいいと思っているObjective-Cのライブラリを紹介します。 YLMoment 日付や時間と文字列を扱いやすくしてくれるライブラリ。 タイムラインでよくある"19 hours ago"みたいな文字列をNSDateから作ったり。 日本語対応。 MTDates NSDateの便利カテゴリ。 何日から何日までのNSDateの配列を取得したり、その日・週・月の頭のNSDate、先週の頭のNSDateなど。 欲しいと思った機能はだいたいあります。 JLRoutes 開発の初期にはURLSchemeから自前で処理を振り分けたりしますが、当然のように辛くなるのでJLRoutes。 sinatraっぽく書けます。sinatra使っ
昨日発表されたばかりの Swift ですが、言語仕様的な解説記事は早くもいろいろな方が書かれているので、実践的なところとして、「Objective-Cで書いた既存アプリをSwiftで書き換える」手順をまとめてみます。 アプリ全体、となると壮大なテーマになってしまうので、まずは AppDelegate だけ。 実際に移植する予定がなくても、Swiftのお試しがてらこの手順をやってみると、Objective-C と Swift の違いがよくわかり、「なるほど、このあたりのおかげで LLVM がグッと最適化できて高速化につながってるのか」とか実感できるのでおすすめです。 なお、NDA 下にある Xcode 6 については書けないので、ビルド設定等については割愛しています。 1. 拡張子を .swift にする 例えば AppDelegate.m なら、AppDeleagate.swift にしま
Xcodeの便利ツールとかじゃなくて、Xcodeを触る上で知っておいたほうが有利なこと これからも追加してく Double Click Navigation 誰か1度はやるかもしれない Xcodeを起動したらToolbarもAssistant Editorもない、この画面 まさに絶望、やる気をすべて奪う悪魔のウィンドウ 原因はProject Navigatorのファイルをダブルクリックで新しいウィンドウを開いたままXcodeを閉じてしまうこと。 解決にはPrefarence... > Navigation > Double Click NavigationをUses Separate Tabにすること これで、ファイルをダブルクリックしたときは、タブで表示される。 ショートカット 私がよく使うのだけ、他にもいくつかあるけど 編集 Esc 補完機能の呼び出し Cmd + / コメントアウト(
Rails + iOSという組み合わせは割と多いと思うんだけど。いちいちサーバーとクライントの繋ぎ込みを自前で書くのはつらいなーと思って調べたら、NSRailsという便利なのがあったので試してみた。 https://github.com/dingbat/nsrails Railsのモデルと対になるものをiOS側で定義しておくとiOSのオブジェクトを操作するだけサーバにデータを永続化したり、データの取得ができる。ざっくりいうとparse.comと非常に使用感が似ている。 導入 導入はcocoapods経由で。Podfileにuse 'NSRails'とかくだけ。 pod 'NSRails' iOS側でRailsアプリの場所を指定するには、AppDelegateで以下のように指定するだけ。 - (BOOL)application:(UIApplication *)application did
ベンチャーキャピタルの著名人フレッド・ウィルソンは、アップルは10年以内にIT企業Top3の地位を失うだろうと考えている。原因としてそのハードに対する取り組みとクラウドでの弱さが挙げられているが、アップルの開発者とのコミュニケーションの弱さのほうがさらに大きな問題だという気がする。 何を言っているのかと思われるかもしれない。去年、iOSプラットフォームの開発者は600万人に達し、アップルは今日までに彼らに100億ドルもの支払いをした。アップルによるとこの金額は、「他のプラットフォームの合計額より3倍も多い」のだという。これは衝撃的な数字だ。 しかしながら別の観点もある。アップルは、幅広い開発者たちが愛してやまないコードレポジトリであるGitHubにおける存在感がほぼ無いのだ。GitHubにますます多くの開発者が移行する中、アップルは独自路線を続けることができるのだろうか。 GitHubのト
コード規約 https://github.com/wantedly/objective-c-style-guide NYTimesをベースにraywenderlichからいくつか使えるものを追加し、Storyboard, Category, Directory, Cocoapodsの章を追加した。 https://github.com/NYTimes/objective-c-style-guide https://github.com/raywenderlich/objective-c-style-guide 既存のプログラム見て確認して欲しいポイント RestKit APIの仕様の確認 ORマッピングについて モデルへのマッピングをどうやっているか ObjectManager, ResponseMapping, RequestMapping, Descriptorはどういう役割をしている
(Andy Myers and the CocoaPods Dev team. Creative Commons - Attribution-NonCommercial 4.0 International) iOSアプリを作るとき、今日ではCocoaPodsを用いて簡単に便利なライブラリの力を借りることができる。 ライブラリを利用するメリットは多い。自分でメンテナンスする必要がないので、放っておいても勝手に改善されていく。潜在的な問題があったとしても、多くの人が利用しているものなら誰かが気付いて直してくれる可能性も高い。また自分より優れたエンジニアの手によって、優れたインターフェースや実装になっているということも多い。何より、自分で実装する手間が省けるのがよい。 反面、デメリットについても考えなければならない。ライブラリがメンテナンスされなくなったとき、なにか問題が起こったり、あるいはAp
サンプルゲーム 本チュートリアルの集大成として、シンプルなゲームを作ってみましょう。 題材は単純なミニゲームで、前方から襲ってくる敵から宝箱を守るゲームです。 タップで主人公が移動し、主人公をタップすると攻撃します。 タイトルはたからもりとでもしておきましょう。 完成イメージは以下のようになります。 完成イメージ タイトル画面 ゲームのタイトルとはじめるボタンがあるだけのシンプルな画面です。 タイトルは、SKLabelNodeを使って、もさもさフォント1で表示しています。 独自フォントの利用については、特にSprite Kit特有の設定は不要です。 Info.plistでFonts provided by applicationを設定すれば使えます。 うまく表示できない場合は、Copy Bundle Resourcesに入っているかチェックしてみましょう。 はじめるボタンは、ボタンらしく動
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く