2016年03月21日

Swift: クラス名を取得する


SwiftのクラスにはObjective-CのNSObjectにあったclassNameプロパティのようなものがないので、文字列でクラス名を取得するには工夫が必要。

Objective-Cのメソッドを使ってNSStringFromClass(String)のようにする。これを実行するにはFoundationをインポートする必要がある。
※Stringは構造体であってクラスではないが、Swiftでは構造体やクラスはタイプという上位概念で包含され様々な点で似た振る舞いをする。

ただし、独自に定義したクラスではランタイムモジュールを含めた修飾が定義したクラス名の前につくのでこれを削除する必要がある。結局、以下のようになる。

import Foundation

func className(type: AnyClass) -> String {
print("AnyClass : ", terminator:"" )
// print( NSStringFromClass(type) ) // "__lldb_expr_198.Root"
return NSStringFromClass(type).componentsSeparatedByString(".").last!
}

class Root { }
className( Root ) // "Root"


単にクラス名を出力するだけであればprint( Root.self )のようにしても"Root"という結果が得られるのだが、これはprintメソッドが内部でクラス名文字列を取り出す処理を行っているだけのようだ。文字列として取り出して使うことはできない。

インスタンスからそのクラス名を取り出すには、同様に出力だけならprint( Root() )でできる。が、ちゃんとするには先ほどのメソッドに Root().dynamicType を渡すとよい。

func className(o: AnyObject) -> String {
print("AnyObject : ", terminator:"" )
return className(o.dynamicType)
}

let root = Root()
className(root)

続きを読む
タグ:Swift クラス
posted by 永遠製作所 at 01:16| 東京 ☀| Comment(0) | TrackBack(0) | Swift | このブログの読者になる | 更新情報をチェックする

2016年03月18日

Apple TV Tech Talks - 3 Focus-Driven Interface With UIKit

Focus-Driven Interface With UIKit
Apple TV Tech Talks - Session 3 - tvOS
44:39
https://developer.apple.com/videos/play/techtalks-apple-tv/3/

ようやく具体的な実装方法についてのセッション。

tvOS向けアプリケーションではユーザーインタフェースとしてフォーカス指向インタフェースを採用している。これについてはデザインに関するセッションでも紹介された。

このセッションではフォーカス指向インタフェースの基本的な考え方、それを実現するためのフレームワークやクラス、そしてその具体的な実装方法について述べる。後半では、サンプルコードを使って実際に動かして説明しているのでわかりやすい。さらにデバッグ方法としてXcodeなどが備えている機能についても実際にデモしながら説明している。

tvOSで始めて導入されたフォーカス指向インタフェースを使う全てのプログラマが視聴すべきセッション。

なお、使われたサンプルコードは下記からダウンロードできる。

UIKit Catalog for tvOS (Sample Code)
https://developer.apple.com/library/tvos/samplecode/UICatalogFortvOS/Introduction/Intro.html
Build Requirements: Xcode 7.1 and tvOS 9.0 SDK or later
Runtime Requirements: tvOS 9.0 or later
続きを読む
posted by 永遠製作所 at 08:58| 東京 ☀| Comment(0) | TrackBack(0) | WWDC | このブログの読者になる | 更新情報をチェックする

2016年03月10日

Apple TV Tech Talks - 2 Designing for Apple TV

Designing for Apple TV
Apple TV Tech Talks - Session 2 - tvOS
23:40

https://developer.apple.com/videos/play/techtalks-apple-tv/2/

Apple TVのアプリケーションを作成するときにデザイン上の注意点。
テレビのようなエンターテインメント性を重視して、パソコン上のアプリケーションのようなボタン等UI要素を使わない。また少し離れたところから明瞭性が重要。リモコンの操作性も考慮する。

そのために実際に操作画面の例を見せながら解説していてわかりやすい。細部についてはヒューマンインタフェースガイドラインで記述している。

続きを読む
posted by 永遠製作所 at 20:45| 東京 ☁| Comment(0) | TrackBack(0) | WWDC | このブログの読者になる | 更新情報をチェックする

2016年03月01日

Apple TV Tech Talks - 1 Kickoff

Kickoff
Apple TV Tech Talks - Session 1 - tvOS
23:03

Apple TVというプラットフォームの紹介と開発環境についての紹介。

高速インターネット接続が前提になっているという部分以外は特に開発者が事前に知っておくべき技術項目はないと思う。Apple TVとは何かということを事前に知らない場合には紹介として見るのがよいだろう。

https://developer.apple.com/videos/play/techtalks-apple-tv/1/

※スピーチ内容の書き起こしがあるのに気がついた。検索可能だからこのセッションビデオのかいつまんだ紹介のシリーズは不要かもしれない。自分が見たことをまとめる程度の意味はあるかと思うのでもうちょっと続ける。
続きを読む
タグ:tvOS
posted by 永遠製作所 at 20:28| 東京 ☀| Comment(0) | TrackBack(0) | WWDC | このブログの読者になる | 更新情報をチェックする

2016年02月25日

WWDC15 - 801 Designing for Future Hardware


Designing for Future Hardware
WWDC 2015 | Design | Session 801
38:55
https://developer.apple.com/videos/play/wwdc2015-801/

※WWDCセッション関係の記事は、セッション内容を要約して内容を伝えるのが目的ではない。各セッションビデオで何が話されているかの項目をテキスト化することで後で何かを調べたいときにどのビデオを見れば良いか判断する材料にするために書いている。

iPhoneなどのアップルデバイスと連携させるハードウエア開発者向け。実際に開発をする前にどのような機能があればいいのか、ユーザーインターフェイスはどうあるべきかを試行錯誤して行く方法についての提言。

前年のアプリケーションプロトタイピング手法の続編的位置づけ。なのでこのビデオを見る人は前年の以下のセッションを見ることを強くオススメする。

WWDC 2014 Session 223 Prototyping: Fake It Till You Make It
https://developer.apple.com/videos/play/wwdc2014-223/

※Webブラウザで閲覧可能なURLを教えて貰いました。
続きを読む
posted by 永遠製作所 at 01:03| 東京 ☀| Comment(0) | TrackBack(0) | WWDC | このブログの読者になる | 更新情報をチェックする