ユースケース CADisplayLink を実際に使う例と共にどんなクラスなのか簡単に紹介します。 例えば現在時刻を表示する場合。 画面に表示されている日時を定期的に更新する必要があります。 そのような場合に NSTimer で 0.01 秒など適当なインターバルを設定して更新、みたいなこと実装した経験ありませんか? 僕はあります。 それを解決するための表示されているビューを更新するためのイベントを取得するためのクラス、それが CADisplayLink です。 最近 facebook が OSS 化した pop や、長年 iOS の 2D ゲームフレームワークとして親しまれている cocos2d でも、もちろん使われていました。 facebook/pop cocos2d/cocos2d-iphone CADisplayLink の使い方 CADisplayLink を以下の様にしてセット
はじめに Springは、Meng Toさんが GitHub で公開されているライブラリです。Core Animation を使ったアニメーションや、View の周りの border の調整など UIKit のアレやコレを、カンタンにしてくれます。 サンプルプログラム 前回は、プロジェクトに Cocoapods でプロジェクトにライブラリを適用し、アニメーションを試してみました。 今回は、サンプルプログラムを使って、ほかにどんなアニメーションが実現できるのかを見て行きましょう。 gitHub にある Spring のページでclone URLを確認し、リポジトリをクローンしてきます。 実行 アニメーションの種類 以下のアニメーションについて試すことができます。 アニメーション名 動き
Apple Watch がもうすぐ発売されますした!実際に家電量販店や Apple Store で触ってみて、開発に興味を持たれている方も多いのではないでしょうか。 私も現在 Apple Watch アプリを作成中です。作成の中で参考になったリソースをココにまとめて行きたいと思います。しばらくの間は随時更新します。 Developers.IO では、WatchKit 公開直後に、WatchKit アプリが開発できるようになりました! | Developers.IO という記事を公開しています。今回の記事と重複する部分もありますが、ぜひ併せてご覧ください。 Apple 公式ドキュメント バイブルですね。迷ったらココ。 Apple Watch Programming Guide WatchKitを使ったプログラミング方法の概要です。 Apple Watch Human Interface Gu
第2回公開中! Swiftで計算してみよう – くらめそちゃんのSwiftパーティー(2) はじめに 私はクラスメソッドという会社の非公式キャラクター くらめそちゃん です。 世の中にはiPhoneアプリがたくさんありますね。私もアプリ大好き!でもどうやって作るんだろう?って思っている人は多いと思います。 アプリを作れたら素敵だと思いませんか? ストアでみんなからダウンロードしてもらったら、楽しいと思いませんか? この Swift パーティーシリーズでは、Swift(スウィフト)というプログラミングの言葉を使って、iPhoneアプリを作ってみんなに公開するところまで、扱っていきたいと思っています。 まずは Swift の基本から入ります。しばらくしたら、小さなアプリを作る方法を覚えていきます。何回かに1回は、少しだけ大きなアプリを作ることになるでしょう。それを何回も繰り返していくうちに、あ
Swift で使えるオープンソースライブラリ 2014年は新言語 Swift が登場し、iOS アプリ開発者にとってはかなり印象深い年になったのではないでしょうか。Swift の登場以後、さまざまな取り組みが iOS アプリ開発者の中で行われ、その結果の1つとしてオープンソースライブラリもかなり増えました。 Swift で一から書かれたものもあれば、既存のものを Swift でも使えるようにアップデートしてくれているものもあります。ある意味、混沌としている現状では「じゃあいまから Swift で iOS アプリ開発するときに何を使えば良いの!?」といったことになりかねません。ということで、現在までに公開されている Swift で使えるオープンソースライブラリを目的別にまとめてみました。 Swift アドベントカレンダーのために書いた記事なので、タイトルには「Swift 時代の」としています
SwiftでJSONを扱う 今回は楽天ブックス書籍検索APIの取得結果を例として利用します。 JSONの内容は下記の通りです。 { "count": 22, "page": 1, "first": 1, "last": 22, "hits": 22, "carrier": 0, "pageCount": 1, "Items": [ { "Item": { "title": "ニセコイ 15", "titleKana": "ニセコイ", "subTitle": "", "subTitleKana": "", "seriesName": "ジャンプコミックス", "seriesNameKana": "ジヤンプ コミツクス", "contents": "", "author": "古味直志", "authorKana": "コミナオシ", "publisherName": "集英社", "siz
今回は短いTIPSです。 override func viewDidLoad() { super.viewDidLoad() var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "show", userInfo: nil, repeats: true) } private func show() { println("timer") } } Swiftのアクセス修飾子であるprivateを使ったコードを書いていました。 上記はその再現コードです。viewDidLoad()内で、一秒ごとにshow()メソッドを呼び出すタイマーを実装しています。 しかし、エラーが出ます。なんということでしょう。 2014-11-26 18:57:52.752 timerExp[12282:259826]
Swiftはアクセス修飾子(Access Control)が利用できます。これにより式やクラスのスコープを明確に定義することができます。 すなわち、「変数」「定数」「クラス」「メソッド」「関数」といったプログラミングを構成する各要素へのアクセス権限を制御できるようになっています。 ただ、このアクセス修飾子がJavaなどと同じ感覚で理解しようとすると「?」となる部分が多いのでまとめておきます。 アクセス修飾子 Swiftのアクセス修飾子は3つのレベルで定義しています。 public 誰からでもアクセスすることができます。APIを定義する時などに利用されます。 異なるファイルでも異なるモジュールであってもアクセスすることが出来ます。 Javaの public とは少々意味が異なり、特殊な用途(ライブラリのAPI定義など)に利用されるアクセス修飾子となります。 Javaにおける public よ
ただいま基本動作を絶賛学習中です。 データ保存 アプリを作成しているとデータを永続化して保存する(アプリを終了しても保存されている)ことは、ほぼ必須の基本的実装だと思います。 iOSには、データを保存する方法としてはプロパティリストや、NSUserDefaults、CoreDataなど、いろいろと方法があります。 まずは、入門ということで使用頻度が高く、実装が容易なNSUserDefaultsをSwiftで実装してみます。 プロジェクト作成 SingleView Application でプロジェクトを作成します。 作成したプロジェクトのMain.storyboardを開き、以下のようにオブジェクトを配置しました。 続いて、controlキー + ドラッグ&ドロップでsaveボタン、loadボタンのactionを設定します。 最後に、TextFieldと、Labelのオブジェクトも紐づけて
はじめに iPhoneのカメラに写っている画像にリアルタイムでフィルタをかけてみたいと思います。 長くなったので2回に分け、前半はカメラ機能、後半はフィルタ部分を記載します。 今回は、AVCaptureVideoDataOutputを使用し、カメラに映った画像をiPhoneの画面に表示するまでになります。 実装 プロジェクトはSingleViewApplicationで作成しました。Storyboardは使用してません。 また、カメラ機能を使用するので、実機で動かす必要があります。 ソースコード ViewController.swift import UIKit import GLKit import AVFoundation class ViewController: UIViewController, AVCaptureVideoDataOutputSampleBufferDelega
Accelerate.Framework + Swift Accelerate フレームワークは線形代数の計算を始めとし、音声、信号処理に応用の効くフーリエ変換や画像処理などでハイパフォーマンスな計算処理を提供します。 このフレームワーク内では OS X / iPhone で用いられている Intel, ARM などの CPU の SIMD 命令を用いて計算が最適化されています。 Accelerate フレームワーク自体は iOS のフレームワークのなかでも比較的低レイヤな位置づけであるため、フレームワークを直接叩くような実装を開発者が行うことはまれです。 とはいえ、重量級の計算をアプリケーションのロジック部で行う際に、SIMD による最適化の恩恵が得られるにも関わらず、それを行わないのは宝の持ち腐れと言えます。 Surge はこの低レイヤな位置づけにある Accelerate フレームワ
ナビゲーションバーのタイトルタップを検知する 情報があまりなかったので共有。 ハマりポイントは以下のとおり。 UILabel の userInteractionEnabled はデフォルト false サンプルコード // タイトルを表示するラベルを作成 let label = UILabel() label.text = "Title" label.sizeToFit() // タップジェスチャーを設定 let gestureRecognizer = UITapGestureRecognizer(target: self, action: "tapped:") label.addGestureRecognizer(gestureRecognizer) // チクショー label.userInteractionEnabled = true // ナビゲーションバーの titleView
先週土曜日(9/6)にレーベにてSwift勉強会を実施しました。iPhoneアプリの著書で有名な森巧尚さんにもご参加いただき、大変濃い勉強会になりました。今回は勉強会の中で中心的に紹介したOptionalの話について紹介します。 何故この話を中心的に紹介したのかというと、Xcode6 beta7以降は、beta7より前に作られたWeb上やGitHub上にあるサンプルコードのほとんどに修正が必要になりました(ビルドが通らない)。今から勉強する方にも影響が大きいと思いましたので、詳しくご紹介します。 iOS8リリース直前のXcode6に大きな変更2014年9月2日にXcode6 beta7がリリースされました。このbeta7で大きな変更が有り、既存のコード(beta7以前)で大量のエラーが出てしまい、コードの書き換えを要求される事になりました。 原因は多くのクラスの、多くの変数がOptiona
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く