NEWS

NEWS < etc

AppleのCraig Federighi氏、Greg Joswiak氏、Daring Fireballのポッドキャスト公開収録に出演(iPadOSはマーケティング名) #WWDC19

Daring FireballのJohn Gruber氏が、California Theaterにおいて「The Talk Show Live From WWDC 2019」を開催しました。

ゲストは、Appleのソフトウェアエンジニアリング担当シニアヴァイスプレジデントCraig Federighi氏、AppleのiOS、iPhone/iPadマーケティング担当ヴァイスプレジデントGreg Joswiak氏です。

その内容が、YouTubeで「The Talk Show Live From WWDC 2019」として公開されています。


The Talk Show Live From WWDC 2019

The Talk Show Live From WWDC 2019

John Gruber氏は2人に対してMac Pro (2019)用の車輪の価格はいくらなのか?と質問すると、Federighi氏は「分割払いでホイールも買えるはず」と回答してます。

John Gruber氏は、以前に情報筋からMac Pro (2019)に関して「最も狂ったパッケージングで出荷される」と聞いたと話すと、Joswiak氏は「それが気を悪くするようなパッケージングではなかったと想像できます。」と回答しています。

Joswiak氏はMac Pro (2019)の魅力に関して「Appleは本当に特別な製品を作らなければならないことは分っていました。CESで会場を回っていると、台湾メーカーのチップ入りケースが色々販売されているのをみます。Appleは、ディスプレイを含めプロのために特別にデザインされた真に特別な製品を追い求めていました。」と話します。

Pro Display XDRは、業界トップクラスの反射防止コーティング技術を採用していて、オプションとして、反射率を下げてグレアを抑えるために、ディスプレイ表面のガラスにナノメートルレベルの微細なエッチングを施す「ナノテクスチャー」と呼ばれる画期的で新しいマット(非光沢)もあります。

放送・業務用31型4K液晶マスターモニターとして定番の製品は(基調講演ではBVM-HX310を引き合いに出していた)43,000ドル(日本は398万円)もするのに明るさを維持できる時間が短く、数秒以内に琥珀色になるため、表示画像を信頼できないという状況を10分の1の価格で解決し、さらに高い性能を実現できていると説明しています。

iPadアプリを、ネイティブなMacアプリとして開発できる「Project Catalyst」に関して、Federighi氏は「macOS Mojaveで一部同梱アプリをProject Catalystで開発して先行搭載したが、それらに対する不満は、開発チームのデザイン決定によるところが大きく、時間の経過とともにバランスを取り戻し基礎となる技術は向上した。」と話し、熟成度が高い状態でデベロッパーに提供すると語っています。

Joswiak氏は、新しいVoice Control機能の開発に関して「AppleのAPIと構文解析はAppleの言語であるとみなしているが、それはユーザーインターフェースの設計上の課題でもある。自分自身をコードで表現する方法であるならば、それは対話することと同じぐらい慎重に検討する必要がある。」と説明しています。

Joswiak氏は、WWDC19の基調講演エピソードとして、最初基調講演のプレゼンテーションスライドを作成し試したところ3時間かかったそうで、WWDC19のような後ろにセッションが控えている場合、2時間15分で終えなければならず、1分あたり何枚のスライドを使えるかを見るために全ての発表者をマッピングしたそうです。それで、最も速くスライドを扱えるのはFederighi氏で、1分で9枚のスライドを扱えたが、歳をとることで1分で7枚のスライドを扱うまでに低下していたことが分ったそうです。

Federighi氏は機械学習についても触れ、最近の他社の発表イベントなどでも機械学習を大きく取り上げるようになっていて、それ自体に注目が集まっていることが明らかだが、これを可能にするためには、素晴らしいハードウェアの開発とソフトウェアの統合であるため、他社にとっては不利な状況だと思っていて、デバイスの性能にばらつきが大きいと不可能になると話しています。

今回、iOSをiPad用OSの「iPadOS」と分けたことについて質問されたFederighi氏は「iPadOSという名称は表面的にはマーケティング的なものであり、これまでと実体はおなじだが、エンジニアリングチームも強く感じていることで、同じOSなのにiPhoneとiPadとではできることがかなり違ってきていて、iPadとOSは一緒に開発されていることを開発者が感じられるようにする必要があった。」と説明しています。

また、iPadOSでUSBドライブのサポートが追加されたが、そもそもiOSがUSBドライブをサポートするのになぜこれほど時間が掛かったのかと質問されると、Federighi氏は「セキュリティの観点から、改ざんされている可能性のある外部メディアと通信するファイルシステムドライバをカーネル内で実行したくなったのが理由で、全てのファイルシステムをカーネルから分離することは、かなり難易度の高いエンジニアリング努力の結果だ。」と説明しています。

iPadOSのテキストコントロールとジェスチャーについては、まだMac上での操作の方が簡単で、iOSデバイス上で行うのは困難だと感じていて「テキストを選択>コピー>ペースト>元に戻す場合は本体を振る」という方法を知ったとき「誰かに教えたい」と思うほどのレベルで、教育用インターフェースで正しい解決策を見つけようと努力し続けていて、その一つの方法として今回紹介しているそうです。

Sign in with Appleに関して、Joswiak氏は「ユーザーは透明性をコントロールする手段が欲しいはずで、これまでは透明性はなく、どこから漏洩したのか追跡する術はなかったが、Sign in with Appleを使用することで、ユーザーに透明性と認証の制御を提供したいと考えている。」と説明しています。

Joswiak氏は「プライバシーに関しては、広く意識される前から守ってきています。Appleは、自分自身、自分の家族、自分の子供のために欲しいものを作っています。私は追跡されたくないし、家族を追跡したくもないのです。」と語っています。


解説


Sign in with Appleは、サインインするサービス毎にランダムなメールアドレスを発行し、そのランダムメールにメールが送られてくると通常使用のメールアドレスに転送されてくる仕組みです。メールのエイリアスのようなもので、もしフィッシングメールが届いた場合、サインインしたどのサービスのメールアドレス宛に送られてきたのかが分るため、漏洩したサービスを特定することができるようになります。


関連エントリー
AppleのGreg Joswiak氏、Mike Rockwell氏、Daring Fireballのポッドキャスト公開収録に出演(WWDC2018)
AppleのPhil Schiller氏、Craig Federighi氏、Daring Fireballのポッドキャスト公開収録に出演(WWDC2017)
AppleのPhil Schiller氏、Craig Federighi氏、Daring Fireballのポッドキャスト公開収録に出演



この記事をシェアする

おすすめ記事

この記事のハッシュタグ から関連する記事を表示しています。

500 Internal Server Error.

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '37625')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '37625')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '37625')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '37625')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')