Tamablog

たまに更新するiOS/Mac系技術ブログ。

技術書典4に行ってきた

秋葉原UDXアキバ・スクエアで技術書典4が開催されたので行ってきました。開場10分前に着きましたが、すでに長蛇の列!ただ整理券を配っていたので特に混乱もなく20分ほどで入場できました。ちなみに自分の整理券番号は1,004番。みんな気合い入りすぎ、、

会場は人だかりでまるで満員電車のよう。移動が大変でしたが、なんとかお目当ての本は全部ゲットできました。支払いは「かんたん後払いアプリ」が使えてとても楽でした。

個人的にオススメの3冊はこちら。

Metal入門 

Metalといえば@shu223さんですが、「Metal入門」は入門書とは思えないほどのボリュームと内容です。自分でアプリを作っていて描画をもっとGPUにやらせたい!と思う事が多々あるので勉強してみたいと思っています。まだ読み始めたばかりですが、ここまで初心者にも分かりやすくMetalを解説する本は世界中探してもなかなかないのでは。

shu223.hatenablog.com

Cheap Dive into React Native

今回便利に使わせてもらった「かんたん後払いアプリ」開発についての内容で、主にcreate-react-native-appのお話です。クロスプラットフォーム開発はFlutterとReact Nativeに興味があるので購入しました。

日本語入力を作るときに必要だった本

Macの入力メソッド、IMKitのお話です。なかなか触れることのないフレームワークですが、どんな仕組みになっているか知りたくて購入しました。今回のサークルではMac関連は2つしかなくてやや寂しい状況だったので、改めて今年のWWDCに期待します!

mzp.hatenablog.com

Marzipanを予想してみた

今年のWWDCで一番の目玉になりそうなのが「Marzipan」です。今回はその姿を予想してみます。

Marzipanとは

昨年12月にBloomburgのMark Gurman記者が「Marzipan」とよばれるプロジェクトをスクープしました。ただ記事の内容はやや曖昧で、「iOSアプリがmacOS上で動くようになる」「iOSとMacアプリのバイナリが1つになる」「MacアプリでもiOSアプリでも使えるフレームワークが登場する」など、さまざまな解釈がなされました。

先月アップルがシカゴで教育イベントを開催しましたが、その中でMarzipanのヒントを見ることができたと思っています。

Classroomアプリ

アップルは教育機関向けに「Classroom」というiPadアプリを提供していますが、このアプリのMac版が6月にベータ版として登場することが発表されました。6月にはWWDCが開催されますが、単なる偶然ではなさそうです。

仮にMarzipanが「iOSアプリをMac上で動作させる」のであれば、このMacアプリは不要なはずです。にも関わらずアップルがMacアプリを作ったという事は、Marzipanは「UIKit for Mac」の可能性が高いと考えています。

Classroom for Macのスクリーンショットを見てみると、iPad版とは若干異なることに気がつきます。例えばMac版ではツールバーの中央にSegmented Controlを使っているのに対し、iPad版は同機能にトグルボタンを使っています。またMac版には検索バーがツールバー上に表示されていますが、iPad版ではiOSらしくナビゲーションバーの下に隠されているのかも知れません。

さらにiPad版はツールバーに「Select」ボタンがありますがMac版にはありません。これは画面中央の子供達の顔をクリック・タップした時のアクションが違うことを意味します。おそらくMac版ではクリックで生徒を選択できるようになっており、ダブルクリックで生徒の詳細を見る、というアクションになっていると思われます。それに対してiPad版はタップすれば生徒の詳細を見るアクションとなり、選択は「Select」ボタンをタップしてから行うと思われます。

このことから、同じアプリでもそれぞれのプラットフォームに合わせて最適化すべし、というアップルのメッセージを読み取ることができます。

UXKit

2015年にMacのPhotosアプリで「UXKit」というフレームワークが使われていることが話題になりました。これはUIKitのAPIをAppKitで実装したものであり、Marzipanはこれを進化させたものであると考えています。

UXKitフレームワークにはAppKitにはなかったNavigationControllerなどのクラスが含まれ、iOSアプリをよりMacに移植しやすくなっています。 またNSViewとUIViewの違いを吸収するUXViewなどのクラスが含まれています。UXKitのヘッダーファイルはこちらで見ることができます。

MacとiOSの違い

「UIKit for Mac」があればMacアプリを作るハードルが下がるのは確かですが、それだけでは良いアプリは作れません。プラットフォームの違いを理解し、Mac特有の機能(マウスによる操作、メニューバーやポップアップメニュー、ショットカットやキーボード操作、TouchBar、リサイズ可能なウインドウ、等)に対応する必要があります。

iPhoneアプリのコードベースからMacアプリを作るのは、iPadアプリを作るよりも作業量としては多くなりそうです。

最後に

というわけでMarzipanの予想をしてみましたが、個人的希望もかなり含まれています。

AppKitを使っているとUIKitの機能が欲しくなることが多々あります。例えばNSScrollViewにはpagingEnabledやtargetContentOffsetを指定できるDelegateがありません。またNSTextFieldの使いにくさはかなりのもので、UITextFieldが欲しくなります。これらがMarzipanで解決するとMacアプリ開発がより楽しく行えるのでWWDCの発表に期待したいと思います!

WWDC 2018準備編

今年は初WWDCという事でいろいろ準備しています。
*随時更新中です。

航空券とホテル

航空券はともかく、ホテルの確保は時間との勝負。WWDC当選後にExpediaで調べてまずはキャンセル料無料の安い宿を確保しつつ、他の良さそうなホテルが空くのを待ちました。WWDC当選発表前から予約していた人がたくさんいたようで、キャンセルが結構出ていた印象でした。自分の狙っていたホテルも最初は日〜火を確保して、その後木〜土をゲットして、3日目くらいには水曜も空いたので無事1週間分取れました。安い宿はその後キャンセル。

ただ3月上旬くらいにはWWDCの予定日はだいたい分かるので(会場の空き具合から推測できますし、アップル関連サイトでもその話題がよく出ます)、その時点でホテルを予約するのが一番の方法だと思いました。

航空券に関しては、出発は羽田・成田、到着はサンフランシスコ・サンノゼの組み合わせでいろいろ調べて、最終的に羽田ーサンフランシスコ便を予約しました。サンノゼーサンフランシスコ(もしくはSFO空港)間も地下鉄のBartと長距離列車のCaltrainで1時間程度で着くようです。今回は別の用事があるのでサンフランシスコにしましたが、通常はサンノゼ往復がいいと思います。

ESTAや保険など

パスポートとESTAは必須なので早めに取りましょう。またアメリカは医療費が高いので、海外保険は必須です。クレジットカードについている保険でカバーするのも良いのですが、自分の場合はやや物足りない内容だったので海外旅行保険に加入しました。

ネット回線

海外で使える「イモトのWiFi」のようなサービスを利用するかは迷いましたが、今のところ無しで行く予定です。というのもソフトバンクがアメリカ放題を展開しており、Sprintに繋がるのであれば追加料金なしでネット接続できるからです。Sprintのホームページでサービスエリアを調べたところサンフランシスコやサンノゼ周辺は比較的繋がりやすそうです。(6/15更新:アメリカ放題はまったく問題なく使えました!)

またWWDC期間中に新しいOSやXcodeをダウンロードするのであれば数GBは必要で、海外WiFiサービスでは無理です。なのでホテルやWWDC会場でWiFiを利用して、それ以外の場所ではアメリカ放題を使う予定です。(6/15更新:WWDC会場では有線LANも提供されており、USB-CとThunderbolt 2アダプターも用意されていました)

オススメのイベント

WWDC関連のオススメのイベントは以下の3つです。

WWDC Pre Party 2018 at Ebisu

株式会社Timersさんが主催するイベントで、WWDCやAltConfなどに行く人が集まります。ここでWWDCや現地に関しての情報をゲットしたり、知り合いをつくることができます。

AltConf

WWDCの会場の隣で行われる開発者イベントで、オススメはライブのポッドキャストです。特にATP Liveは人気ポッドキャストアプリOvercastの作者Marco Armentら3人が出ているので面白い話が聞けそうです。チケットが必要なので事前に予約しましょう。(4/1更新:ATP Liveのチケットは売切となりました)

The Talk Show Live From WWDC

アップル関連ブログDaring Fireballを運営するJohn Gruberのポッドキャストで、過去2年はゲストでPhil SchillerとCraig Federighiが出演しました。今年もビッグなゲストが登場すると思うので、チケットは出たらすぐにゲットしたいところです。通常、6月にチケットが販売されますが20分程度で売り切れてしまうようなので、John Gruberのツイッターをフォローするなどしてすぐにチケット情報が手に入るようにしましょう。

去年のライブはVimeoで見られます。

(6/2更新:チケットは速攻で売り切れました!)

その他のイベント

NextDoorConf

AltConfと同じく、WWDC会場のすぐ近くで開催される開発者イベントです。スピーカーは元アップルエンジニアだったり、Brent SimmonsDavid Smithなど海外Mac・iOS界隈で有名な人が登壇するので、かなり豪華な印象です。

ただチケット代が$799とかなり高いです。なのですでにアメリカにいてWWDCに当選しなかった人が行くのであれば良いと思います。

try! Swift San Jose

1日限定でtry! SwiftがWWDC最終日に開催されます。内容はSwift open source projectに限定されるようなので、Swiftのソースコードを触ってみたい人にオススメです。

Layers

技術とデザインをテーマにしたイベントで、WWDC会場の近くで開催されます。登壇者もデザイナーの方が多く、UIやUXに興味のある人向けのようです。

便利アプリ

Parties for WWDC

WWDC関連のイベントを集めたアプリです。まだAltConfしか登録されていませんが、WWDCが近づいたらイベントも増えてくると思うのでチェックしてみてください。

Uber / Lift

ホテルからWWDC会場までの足として毎日使うことになりそうです。日本でアクティベートして使える状態にしておきましょう。電話番号とクレジットカードが必要です。

WWDC

本家アップルのWWDCアプリはもちろん必須です。

おまけ

WWDCでのコミュニケーションは当然英語になります。英語を話すのは知っている単語を並べていけばなんとかなりますが、リスニングはそのような技(?)が通用しないので苦手な方が多いのではないでしょうか?

そこでポッドキャストを聞いて練習したい!という人向けにThe Omni Showをオススメします。このポッドキャストの良いところは、ホストのBrent Simmonsの発音が非常に聴きやすいこと、そしてトランスクリプトがあること!また内容も技術的なことが多いのでWWDCのための練習にはぴったりです。

 

WWDC 2018に当選しました!

今年はいろんな仕事絡みでWWDCに行きたいと思っていたところ、、

無事に当選しました!

できればクレカにチャージしたよというメールを送る前に、当選メールを送ってほしかったですが、、

f:id:tamadeveloper:20180327202227p:plain

何がともあれサンノゼ行きます!

WWDC初参戦なのでよろしくお願いします。