日本時間 2021年9月15日午前2時に Apple のスペシャルオンラインイベント「California streaming.」が開催と iPhone 13 Pro Max 256GB シエラブルー 購入

Apple のスペシャルオンラインイベント「California streaming.」

2021/09/28(Tue) 18:50:30
Appleのイベント - 2021年9月 - Apple(日本)
https://www.apple.com/jp/apple-events/september-2021/

2021/09/28(Tue) 18:51:01
Appleのイベント - Apple(日本)
https://www.apple.com/jp/apple-events/
iPhone 13/mini
iPhone 13 Pro/Pro Max

随分遅くなりましたが、日本時間 2021年9月15日午前2時に Apple のスペシャルオンラインイベント「California streaming.」が開催されました。Apple TV で視聴しました。発表された内容の概略は次の通りです。

・Apple TV+
9.24 FOUNDATION ファウンデーション

・iPad (9th Generation)
A13 Bionicチップ
Apple Pencil(第1世代)に対応 
ホームボタン/Touch ID センサー
Lightning コネクタ

・iPad mini (6th Generation)
A15 Bionicチップ
5コアグラフィックス
Apple Pencil(第2世代)に対応
トップボタン/Touch IDセンサ
USB-C コネクタ

・Apple Watch Series 7

・Apple Fitness+
日本は対象外

・iPhone 13/mini
A15 Bionicチップ
新しい4コアGPU

・iPhone 13 Pro/Pro Max
A15 Bionicチップ
新しい5コアGPU
ProMotion搭載Super Retina XDRディスプレイ
マクロ写真撮影
最大4K、30fpsのProResビデオ撮影(容量128GBのモデルでは1080p、30fps)

Apple Watch Series 7 は秋に発売予定で、他の製品は 9月24日発売されました。

自分は、iPhone XS Max を使用しているのですが、キーボードを ‘日本語かな’ ではなく、’日本語ローマ字’ を多用しています。予測変換で表示された文字をすぐにタップすると違う文字が入力されることがあります。

iPhone XS Max の CPU 性能が足りないのが原因だと思います。買い替え時期が来たなと思い、Apple Store オンラインで iPhone 13 Pro Max 256GB シエラブルー を注文しました。

そんなに急いでいなかったので、オンラインイベントの3日後、予約開始、9月17日21時の翌日、9/18(Sat) 0:22 に注文しました。

お届け予定日は、2021/10/07 – 2021/10/14 : 通常配送の予定です。一緒に注文した MagSafe 対応 iPhone 13 Pro Maxシリコーンケース – (PRODUCT)RED は、ヤマト運輸で 09/19(Sun) 09:04 に到着しました。

クレジットカードのポイントをAmazonギフト券に換え、1000円をチャージしていたので、アマゾンで下記のガラスフィルムを購入してみました。
iPhone 13 Pro Max の到着が楽しみです。

2021/09/26(Sun) 23:10:44
Amazon | 本, ファッション, 家電から食品まで | アマゾン
https://www.amazon.co.jp/ref=nav_logo

お届け予定日: 2021年9月28日
発送元: Amazon.co.jp.
Spigen EZ Fit ガラスフィルム iPhone 13 Pro Max 用 貼り付けキット付き iPhone13Pro Max 対応 保護 フィルム 2枚入
¥1,599
数量: 1
販売:Spigen 公式直営店
¥300割引が適用されました
プライムのお得な配送オプション:
通常配送 無料  ※コンビニ・ATM・ネットバンキング・電子マネー払い可。
お急ぎ便 無料 2021/9/28 火曜日

お届け日時指定便 無料
火曜日 2021/9/28, 8:00 - 12:00

注文内容
商品の小計:	¥1,599
配送料・手数料:	¥0
合計:	¥1,599
割引:	-¥300
Amazonギフト券:	-¥1,000
ポイント利用:	-¥13
ご請求額:	¥286

Apple のスペシャルオンラインイベント「California streaming.」reddit コメント

Apple スペシャルオンラインイベント新製品記事

西田宗千佳氏

2021/09/28(Tue) 19:02:43
【西田宗千佳のRandomTracking】コンパクトなボディに「最新仕様」満載、新iPad miniをチェック - AV Watch
https://av.watch.impress.co.jp/docs/series/rt/1352887.html

2021/09/28(Tue) 19:03:27
【西田宗千佳のRandomTracking】動画撮影が超進化、映画は24p再生。実機で見る「iPhone 13」の魅力 - AV Watch
https://av.watch.impress.co.jp/docs/series/rt/1353214.html

2021/09/28(Tue) 19:03:46
どのiPhoneがベストなのか。ラインナップ戦略を読み解くと見えてくる賢い選び方(西田宗千佳) - Engadget 日本版
https://japanese.engadget.com/iphone13-064548008.html

2021/09/28(Tue) 19:04:04
【西田宗千佳のRandomTracking】「iPhone 13」に「iPad mini」、秋のアップル新製品を分析 - AV Watch
https://av.watch.impress.co.jp/docs/series/rt/1351336.html

スタパ齋藤氏

2021/09/28(Tue) 19:05:59
iPad mini 6は、iPhone 13より欲しい端末ッ!!! ていうか即買った♪ - ケータイ Watch
https://k-tai.watch.impress.co.jp/docs/column/stapaapple/1352382.html

2021/09/28(Tue) 19:06:19
2021年新型iPhone 13シリーズ、俺ならコレを買うッ!!! - ケータイ Watch
https://k-tai.watch.impress.co.jp/docs/column/stapaapple/1351824.html

本田雅一氏

2021/09/28(Tue) 19:07:41
「ソソる」iPad miniと「ホンモノ志向」iPhone Pro。Apple新製品概観(本田雅一) - Engadget 日本版
https://japanese.engadget.com/apple-iphone13-ipadmini-213046825.html

CNET Japan

2021/09/28(Tue) 19:09:07
「iPhone 13 Pro/Pro Max」レビュー--進化した接写と素晴らしい「シネマティックモード」 - CNET Japan
https://japan.cnet.com/article/35177039/

TechCrunch Japan

2021/09/28(Tue) 19:11:23
【レビュー】iPhone 13 Proを持ってディズニーランドへ!カメラとバッテリー駆動時間をテスト | TechCrunch Japan
https://jp.techcrunch.com/2021/09/23/2021-09-21-the-iphone-13-pro-goes-to-disneyland/

Impress – ケータイ Watch

2021/09/28(Tue) 19:10:19
iPhone 13シリーズの実機を触りながら12との違いを解説するファーストインプレッション [iPhone駆け込み寺] - ケータイ Watch
https://k-tai.watch.impress.co.jp/docs/review/iphonetips/1353051.html

2021/09/28(Tue) 19:10:43
「iPhone 13/mini/Pro/Pro Max」はどこが違う? 大きさ・デザイン、カメラを細かくチェックしてみた [iPhone駆け込み寺] - ケータイ Watch
https://k-tai.watch.impress.co.jp/docs/review/iphonetips/1351143.html

日本時間 2021年4月21日午前2時に Apple がオンラインイベントを開催

2021/04/14(Wed) 18:36:10
Apple Events - Apple
https://www.apple.com/apple-events/
2021/04/14(Wed) 18:36:44
Apple、オンラインイベントを21日午前2時に開始。iPadなどの新製品発表か - PC Watch
https://pc.watch.impress.co.jp/docs/news/1318455.html

2021/04/14(Wed) 18:37:07
Appleが4月21日午前2時にオンラインイベントを開催 - ITmedia PC USER
https://www.itmedia.co.jp/pcuser/articles/2104/14/news055.html

2021/04/14(Wed) 18:37:28
ASCII.jp:アップル、4月20日にイベント開催発表 iPad Proに期待!?
https://ascii.jp/elem/000/004/051/4051419/

2021/04/14(Wed) 18:38:06
Apple、2021年4月20日にスペシャルオンラインイベント「Spring Loaded.」を開催すると発表(日本時間4月21日) | Apple | Macお宝鑑定団 blog(羅針盤)
http://www.macotakara.jp/blog/apple/entry-41123.html
2021/04/14(Wed) 18:38:41
Apple April 20 event: Everything that could be announced - 9to5Mac
https://9to5mac.com/2021/04/13/apple-april-event-roundup/

2021/04/14(Wed) 18:39:26
What product are you most excited to see at Apple April Event? - 9to5Mac
https://9to5mac.com/2021/04/13/poll-apple-april-event/

2021/04/14(Wed) 18:39:53
Siri says the next Apple event is on April 20: new iPad Pro expected - 9to5Mac
https://9to5mac.com/2021/04/13/siri-says-the-next-apple-event-is-on-april-20-new-ipad-pro-expected/

新型 iPad Pro や新デザインの iMac が噂になってる。
新型 iMac が発表されたら、Apple M1 チップの後継モデルがどのくらいの性能になるのか、楽しみ。

拙作 iPhone 用 RSS リーダー iYKRSS、iPad 用 RSS リーダー iYKRSSHD 無料公開、 iOS 用 Twitter アプリ作成方法

ちょっと宣伝です。拙作 RSS リーダー iYKRSS を iPhone 5 スクリーンで表示できるようにしました。また、iPadRSS リーダー iYKRSSHD を Retina ディスプレイに対応しました。

あらかじめ登録された芸能人ブログリストから RSS フィードを簡単に選ぶことができるので、RSS リーダーを使ったことがない初心者にもお勧めです。

iYKRSS、iYKRSSHD 共に無料です。ただし、iYKRSSHD は、9月になると 85 円に戻ります。iPhoneiPod touchiPad を持ってる人は、良かったら試しにダウンロードしてみてください。

使い方がわからない人は、気軽にコメントに書き込んでください。返事は、遅れるかもしれないのでご了承ください。

iYKRSS version 1.0.4
http://appstore.com/yoshiakikoyama/iykrss

iYKRSSHD version 1.0.2
http://appstore.com/yoshiakikoyama/iykrsshd

随分遅れましたが、前回、予告した iOS 用 Twitter アプリ作成方法を説明したいと思います。私自身、良く理解していない部分もあるので、間違いもあるかもしれません。

基本的に、下記 URL の REST API v1.1 を

REST API v1.1 Resources | Twitter Developers
https://dev.twitter.com/docs/api/1.1

使って Twitter のタイムライン情報などを取得します。REST API v1.1 を前回説明した GET、POST で送信するのですが、

Authorizing a request | Twitter Developers
https://dev.twitter.com/docs/auth/authorizing-request

上記、URL の

POST /1/statuses/update.json?include_entities=true HTTP/1.1
Accept: */*
Connection: close
User-Agent: OAuth gem v0.4.4
Content-Type: application/x-www-form-urlencoded
Authorization:
OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog",
oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg",
oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1318622958",
oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb",
oauth_version="1.0"
Content-Length: 76
Host: api.twitter.com
status=Hello%20Ladies%20%2b%20Gentlemen%2c%20a%20signed%20OAuth%20request%21

のように、認証情報 (上の Authorization: OAuth の部分) が必要です。OAuth を使って取得する必要があります。

しかし、iOS の場合、

 Using Reverse Auth | Twitter Developers
https://dev.twitter.com/docs/ios/using-reverse-auth

Reverse Auth を使って OAuth の情報を取得できます。取得の仕方は、

 seancook/TWReverseAuthExample · GitHub
https://github.com/seancook/TWReverseAuthExample

を参考にした拙作サンプル

自作 iOS 用 Twitter アプリ サンプル TSTwitter
http://kyoshiaki.sakura.ne.jp/osx/Sample/Twitter.zip

に含まれています。 KeyDefines.h の

#define TWITTER_CONSUMER_KEY    @""
#define TWITTER_CONSUMER_SECRET @""

を設定してください。Consumer key、Consumer secret を使うには、

Twitter Developers
https://dev.twitter.com/

にログインして、自分のアイコンをクリックして表示されるメニューから ‘My applications’ を選び、’Create a new application’ ボタンをクリックして My application を作成する必要があります。

Sign in with your Twitter account | Twitter Developers
https://dev.twitter.com/apps

作成した application を選べば、Consumer key、Consumer secret は表示されます。

自作 iOS 用 Twitter アプリ サンプル TSTwitter
http://kyoshiaki.sakura.ne.jp/osx/Sample/Twitter.zip

の TSViewController.m の Reverse Auth を呼び出している部分は、

TSViewController.m

- (void)awakeFromNib {
__unsafe_unretained TSViewController *me = self;
_accountStore = [[ACAccountStore alloc] init];
_apiManager = [[TWAPIManager alloc] init];
ACAccountType *twitterType = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
_accounts = [_accountStore accountsWithAccountType:twitterType];
_account = [_accounts objectAtIndex:0];
NSLog(@"%@", _account);
NSLog(@"identifier: %@", _account.identifier);
NSLog(@"username: %@", _account.username);
if ([TWITTER_CONSUMER_KEY isEqualToString:@""]) {
NSLog(@"TWITTER_CONSUMER_KEY=\"\"");
[self requestApiTimeline:self];
//        [self requestApi:me];
} else {
[_apiManager performReverseAuthForAccount:_account withHandler:^(NSData *responseData, NSError *error) {
if (responseData) {
NSString *responseStr = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSArray *parts = [responseStr componentsSeparatedByString:@"&"];
me.reverseAuth = [NSMutableDictionary dictionary];
//            NSLog(@"%@", responseStr);
for (NSString *line in parts) {
NSArray *array = [line componentsSeparatedByString:@"="];
[me.reverseAuth setObject:array[1] forKey:array[0]];
}
//            NSLog(@"%@", me.reverseAuth);
//
[me requestApi:me];
//                [me requestRawApi:me];
}
}];
}
}

[_apiManager performReverseAuthForAccount:_account withHandler:^(NSData *responseData, NSError *error) { です。

_apiManager に引数、ACAccount *account と最終的に呼ばれるブロックを渡し、performReverseAuthForAccount: withHandler: メソッドを呼ぶと

Using Reverse Auth | Twitter Developers
https://dev.twitter.com/docs/ios/using-reverse-auth

の最後にある下部

oauth_token=2311112785-EXKeLV5ezo3HHIaIf1T3ffeww0mR5dfYXKZjjRy0&oauth_token_secret=KYxxxxx3U4Fxrxva3BGD92--12ehEzFwQ&user_id=38895958&screen_name=theseancook

のような、oauth_token、oauth_token_secret、user_id、screen_name を NSData *responseData で返してくれます。ここで重要なのは、user_id を返してくれることです。実は、Reverse Auth を使わなくても、タイムラインを表示することができます。

    if ([TWITTER_CONSUMER_KEY isEqualToString:@""]) {
NSLog(@"TWITTER_CONSUMER_KEY=\"\"");
[self requestApiTimeline:self];
//        [self requestApi:me];

上の部分が TWITTER_CONSUMER_KEY が設定されていない場合、Reverse Auth を使わないでタイムラインを表示しています。

ただし、他の REST API v1.1 を使用するためには user_id が必要になってきます。

後は、簡単です。アップルが用意したフレームワークの SLReuest を使って Twitter API v1.1 を呼び出す汎用 API

- (void)performTwitterRequestAccount:(ACAccount *)account Method:(SLRequestMethod)method URL:(NSURL *)url parameters:(NSDictionary *)dict completion:(TwitterRequestHandler)completion

です。

- (void)requestApi:(id)sender {
//    url = [NSURL URLWithString:@"http://192.168.1.6:9090/1.1/lists/list.json"];
url = [NSURL URLWithString:@"https://api.twitter.com/1.1/lists/list.json"];
//    dict = @{@"user_id" : @"00000000"}; // user_id を設定してください
dict = @{@"user_id" : [self.reverseAuth objectForKey:@"user_id"]}; // TWITTER_CONSUMER_KEY を設定していないと使えません。
[self performTwitterRequestAccount:_account Method:SLRequestMethodGET URL:url parameters:dict completion:^(NSArray *json, NSURLResponse *response, NSError *error) {
NSLog(@"===< List >===");
//      NSLog(@"%@", json);
for (NSDictionary *list in json) {
NSString *text = [NSString stringWithFormat:@"<%@>\n  list_id:%@\n  slug:%@",[list  objectForKey:@"uri"],[list  objectForKey:@"id"],[list  objectForKey:@"slug"]];
NSLog(@"%@", text);
}
}];

で、- (void)performTwitterRequestAccount:(ACAccount *)account Method:(SLRequestMethod)method URL:(NSURL *)url parameters:(NSDictionary *)dict completion:(TwitterRequestHandler)completion を呼び出しているのがわかると思います。この場合、自分のリストを表示しています。

 url = [NSURL URLWithString:@"http://192.168.1.6:9090/1.1/lists/list.json"];

を有効にして、前回の GET、POST のように SLRequest がどんなデータをサーバーに送信しているのか確認することができます。

まず、ターミナルで

自作 iOS 用 Twitter アプリ サンプル TSTwitter
http://kyoshiaki.sakura.ne.jp/osx/Sample/Twitter.zip

に含まれる server.rb を実行します。その後、TSTwitter.xcodeproj を開き、ツールバー上 Run ボタンをクリックします。画面が現れプログラムが起動し終えたら、Stop ボタンを押します。ターミナル上に実際の SLRequst がサーバーに送るデータが下図のように表示されます。

上図より、

Authorizing a request | Twitter Developers
https://dev.twitter.com/docs/auth/authorizing-request

上記 URL の

POST /1/statuses/update.json?include_entities=true HTTP/1.1
Accept: */*
Connection: close
User-Agent: OAuth gem v0.4.4
Content-Type: application/x-www-form-urlencoded
Authorization:
OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog",
oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg",
oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1318622958",
oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb",
oauth_version="1.0"
Content-Length: 76
Host: api.twitter.com
status=Hello%20Ladies%20%2b%20Gentlemen%2c%20a%20signed%20OAuth%20request%21

と似ているのが理解できると思います。SLRequest を使わずに NSMutableURLRequest で実現したのが

自作 iOS 用 Twitter アプリ サンプル TSTwitter
http://kyoshiaki.sakura.ne.jp/osx/Sample/Twitter.zip

に含まれているソース

TSSignedRequest.h
TSSignedRequest.m

の TSSignedRequest

- (void)performTSTwitterRequestMethod:(TSSignedRequestMethod)method URL:(NSURL *)url parameters:(NSDictionary *)dict completion:(TSTwitterRequestHandler)completion {
- (void)requestRawApi:(id)sender {
- (void)performTSTwitterRequestMethod:(TSSignedRequestMethod)method URL:(NSURL *)url parameters:(NSDictionary *)dict completion:(TSTwitterRequestHandler)completion {

です。SLRequest と似ているので注意してください。TSSignedRequest を通常使う必要はありません。Twitter API の動作を確認するために、実験的に作ってみただけです。SLRequest を使ってください。

SLRequest を使うだけなら、Reverse Auth が必要ないと思うかもしれません。以前は ACAccount *account から user_id を取り出すことができたのですが、現在、Reverse Auth を使って user_id を取り出すしか方法がありません。

Twitter API v1.1 を試すには、Mac App StoreTwitter、ターミナル上で curl を使う方法があります。

Mac 上で動作する本家 Twitter アプリは、Mac App Store にあります。

Twitter
http://appstore.com/mac/twitterinc/twitter

上記 URL をクリックすれば表示されます。

Twitter をクリックして実行し、メニュー/Twitter/環境設定… を選び、ツールバーから ‘開発者’ を選択します。コンシュマーキー、アクセストークンを入力し、認証ボタンをクリックすると開発者メニューが有効になります。

試しに、メニュー/開発/コンソール を選び、ホームタイムラインを表示してみたのが下図です。

curl を使って試す方法は、まず、

Twitter Developers
https://dev.twitter.com/

にログインします。

REST API v1.1 Resources | Twitter Developers
https://dev.twitter.com/docs/api/1.1

を開き、呼びたい REST Api をクリックします。ここでは、GET statuses/home_timeline にします。
右側、OAuth tool で ‘Select one of your Apps’ から自分のアプリケーションを選びます。その後、Generate OAuth signature ボタンをクリックします。

表示されたページの Request URI: が正しく設定されているか確かめます。 Request query: に設定したいパラメーターを入力します。ここでは、count=2 と入力します。

この後、ページの一番下の See Oauth signature for this request ボタンをクリックします。

表示されたページの OAuth Signing Results に cURL command と名前の項目があります。右横にパラメーターがセットされた curl コマンドが表示されています。それをコピーして、ターミナルにペーストし実行すれば、生の JSON データを取得することができます。