-
Notifications
You must be signed in to change notification settings - Fork 3
/
timetable.json
2962 lines (2962 loc) · 207 KB
/
timetable.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"timetable": [
{
"type": "timeslot",
"uuid": "b647ccdb-bbb8-414f-b66f-b4f00690c47a",
"title": "前夜祭説明",
"abstract": null,
"track": {
"name": "Track A",
"sort": 1
},
"starts_at": "2022-09-10T16:20:00+09:00",
"length_min": 15
},
{
"type": "talk",
"uuid": "aad51596-674f-4b8a-a24b-868e84453e9a",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/aad51596-674f-4b8a-a24b-868e84453e9a",
"title": "ノートアプリのテキストエディタの解体新書",
"abstract": "note の iOS アプリのテキストエディタはテキストや画像、埋め込みなど様々な要素を入力できます。\r\nまた、今年には V4 エディタと呼んでいるエディタの拡張も行い、箇条書きや罫線などのサポートも追加しました。\r\nスクロールする画面に複数の UITextView を入れる UI を作る時に、みなさんはどのように設計するでしょうか?\r\nnote の iOS アプリでは伸び縮みする画面を作る方法として、UIScrollView の中に UIStackView を入れて、その中に UITextView を含むビューを配置するように実装しました。\r\nこのセッションでは UIKit を活用して、伸び縮みするような画面を作る際の考え方と実装する際に困ったことなどをお話しします。",
"accepted": true,
"track": {
"name": "Track A",
"sort": 1
},
"starts_at": "2022-09-10T16:40:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "かっくん",
"kana": "カックン",
"twitter": "fromkk",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/67aad253-9c62-41f9-83c4-96a3440b16f5.jpg"
},
"fav_count": 10,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "6c4615f5-b471-4f78-9044-4ae3f8dd75d4",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/6c4615f5-b471-4f78-9044-4ae3f8dd75d4",
"title": "施策基盤としてのディープリンク 〜なめらかにアプリが開く体験のために〜",
"abstract": "SNSにおけるプロモーションや、Webのユーザーをアプリユーザーに転換させるような施策を実施したい場合にディープリンクを利用したいケースはよくあるでしょう。\r\n\r\nディープリンクを利用してユーザーをアプリに連れてくる際「ユーザーが文脈を理解できている状態」というのは重要で、ユーザー状態に応じたフローを組むだけでは施策の効果を十分に発揮できない可能性があります。\r\n\r\nこのセッションでは、滑らかな体験でアプリにユーザーを連れてくるために「ディープリンク」を効果的に活用する方法やその仕組みについて紹介します。\r\n\r\n話すトピック \r\n・概念としてのディープリンクおよび、ディープリンクを実現するための機能紹介\r\n・アプリのインストール状況や初回設定状況などのユーザー状態に応じた適切な遷移方法\r\n・ユーザーに文脈を理解した状態のままアプリに来てもらうために活用できる仕組み\r\n・コンバージョンの計測方法",
"accepted": true,
"track": {
"name": "Track B",
"sort": 2
},
"starts_at": "2022-09-10T16:40:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "あつや",
"kana": "アツヤ",
"twitter": "n_atmark",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/678b54ad-c083-422a-a910-2919dd9467a4.jpg"
},
"fav_count": 9,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "6b5012f2-6252-44aa-858d-925898684da5",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/6b5012f2-6252-44aa-858d-925898684da5",
"title": "iPhoneのセンサで”位置情報”を得るために",
"abstract": "みなさんiPhoneのセンサで取得できる位置情報と聞いて何を思い浮かべますか?\r\nおそらくCore Location Frameworkを使った緯度経度情報を思い浮かべる方が多いのではないでしょうか。\r\nロボット開発の観点では自己位置推定と呼ばれるLiDAR,カメラ,加速度センサなどを組み合わせることによってロボットの位置を推定する技術が日々研究されています。\r\n本トークでは位置情報を得るという目的のためにiPhoneのセンサを使って検証した結果を\r\n- どのようなセンサを使う方法があるか\r\n- 取得できる位置情報の精度\r\n\r\nについて紹介します。",
"accepted": true,
"track": {
"name": "Track D",
"sort": 4
},
"starts_at": "2022-09-10T16:40:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "Shinya Todaka",
"kana": "シンヤ トダカ",
"twitter": "shinya_todaka",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a7323b7b-b7f3-4fc3-bc44-cf6f94e87be9.jpg"
},
"fav_count": 8,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "b271a27f-bf58-4eec-94f5-2c881d072618",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/b271a27f-bf58-4eec-94f5-2c881d072618",
"title": "ShazamKitの遊び方",
"abstract": "WWDC2021で発表されたShazamKitは、膨大な音楽カタログをベースに何百万曲の音楽検索を行える音声認識フレームワークです。\r\n音楽に全く詳しくない私(ミスチル好き)ですが音声認識機能には興味があり、\r\nレンタルスペースを予約できる「SpaceMarket」のiOS\/Androidアプリへ遊びで勝手に組み込んでみたので\r\n・ShazamKitの機能紹介\r\n・両OSへの導入の仕方\r\n・使い道の検討\/実際に作ってみた機能\/社員の反応\r\nについてお伝えできればと思っています。",
"accepted": true,
"track": {
"name": "Track C",
"sort": 3
},
"starts_at": "2022-09-10T16:40:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "Naoyuki Murata",
"kana": "ムラタ",
"twitter": "namu767676",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0240d843-0e7a-4769-8127-9fc03cc82937.jpg"
},
"fav_count": 4,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "0b6f453a-68f0-4300-9ab2-cb1e3457eb53",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/0b6f453a-68f0-4300-9ab2-cb1e3457eb53",
"title": "SwiftUI Navigation のすべて",
"abstract": "SwiftUIのNavigation APIは「Tab, Alert, Sheet, Navigation Link...」など様々な種類が存在し、OSによるインターフェースの変化も激しいです。\r\nまた、これらのAPIを利用して画面遷移を実現する際には多くの選択肢があり、画面遷移が増えれば状態管理も複雑になります。\r\n\r\nこのトークでは、そんなSwiftUI Navigationについて以下の内容で発表します。\r\n\r\n・SwiftUIのシンプルな画面遷移と状態駆動型の画面遷移について俯瞰\r\n・状態駆動型の画面遷移の利用時に起きる状態の不整合、不要な状態の管理を改善するswiftui-navigationの手法\r\n\r\n本トークではPoint-Free製のswiftui-navigationを深掘ることによって、よりSwiftUIのNavigationについて理解できるようになることを目指します。",
"accepted": true,
"track": {
"name": "Track D",
"sort": 4
},
"starts_at": "2022-09-10T17:15:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "アイカワ",
"kana": "アイカワ",
"twitter": "kalupas226",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/af92f5ac-c913-48db-9ecd-7d2db0b5ffda.jpg"
},
"fav_count": 27,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "841f38a0-f3e4-4b39-b14c-de6f80521eee",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/841f38a0-f3e4-4b39-b14c-de6f80521eee",
"title": "Swiftで我が家をより便利に、安全に!",
"abstract": "我が家にはたくさんのIoTガジェットがあって、カーテンや玄関の鍵を開け閉めしたり、大活躍です。\r\nしかしエンジニアという人種は、既存の機能では満足できず、カスタムして、色々作り込みたくなるものです!\r\nそこで日頃お世話になっているSwift、我が家に余ってたラズパイ、そしてiPhoneの力を借りて、より便利で安全なスマートホームを目指した取り組みを共有します。\r\n具体的には…\r\n●ラズパイでのSwiftやServerSideSwiftフレームワークのセットアップ\r\n●iPhoneのセンサー情報をServerSideSwiftのAPI経由でラズパイのDBに書き込む方法\r\n●ラズパイと既存のIoTガジェットの連携方法\r\n●SwiftでラズパイのGPIO経由でセンサーやLEDを操作する方法\r\nなどをデモを交えて紹介する予定です。\r\n\r\nぜひ皆さんもSwiftを使った自宅のスマートホーム化、電子工作を楽しみましょう!",
"accepted": true,
"track": {
"name": "Track C",
"sort": 3
},
"starts_at": "2022-09-10T17:15:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "すぎー",
"kana": "スギー",
"twitter": "u5_03",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/b2eabbb6-7a5f-46d0-9d6a-bae13d2a682a.jpg"
},
"fav_count": 13,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "f9ec6cc3-bc06-4749-a6b4-a472b9234684",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/f9ec6cc3-bc06-4749-a6b4-a472b9234684",
"title": "PiPを応用した配信コメントバー機能の開発秘話と技術の詳解",
"abstract": "WWDC21 が開催されていた昨年の6月、AVKit に追加されたひとつの機能に社内がざわつきました。\r\nPiP(ピクチャ・イン・ピクチャ)の機能を応用して、Android の画面オーバーレイのようにアプリ外に自由なコンテンツを描画できる期待感を経験のあるエンジニアは感じていましたが、既存のアプリに機能を組み込むまでには R&D 的な開発やパフォーマンスとの戦いがありました。\r\n\r\nこのトークでは、ゲーム配信アプリミラティブに実装され多くのユーザーに利用されている、視聴者からのコメントや各種配信情報をアプリ外で表示する「配信コメントバー」機能の開発の裏側と技術の詳細、また更なる応用についてご紹介します。\r\n\r\n・「配信コメントバー」機能の概要\r\n・実装の解説\r\n・R&D 開発の勘所\r\n・パフォーマンスの解決\r\n・PiP と AVAudioSession との関係\r\n・PiP のカスタマイズ性\r\n・更なる応用",
"accepted": true,
"track": {
"name": "Track B",
"sort": 2
},
"starts_at": "2022-09-10T17:15:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "千吉良 成紀",
"kana": "チギラ ナルキ",
"twitter": "_naru_jpn",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/fe245250-08ca-4ab7-833f-945c1ee979e5.jpg"
},
"fav_count": 9,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "28a7ecff-a0f1-40c9-80a5-b8ed2fb0fd94",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/28a7ecff-a0f1-40c9-80a5-b8ed2fb0fd94",
"title": "ウーニャ、しってる。みんなふんいきでSwiftUIをつかってる。",
"abstract": "SwiftUIでViewを構築するのは難しいです。\r\n\r\n何も考えずに書くとクソデカViewになります。\r\n複数のViewに分割する場合も、プロパティやメソッドに切り出すのがいいか、構造体を定義するのがいいか迷います。\r\n\r\nViewの命名も迷います。\r\nAtomic Designに沿うのもいいですが、iOSと馴染めない気がします。\r\nUIKitに近い命名はわかりやすいですが、SwiftUIではスマートでないと感じます。\r\n\r\n---\r\n\r\n「いきなりぐちってごめんなさい。ウーニャほんとはSwiftUIとなかよくしたいです…!」\r\n\r\nこのトークは、ウーニャ(私)とみんながSwiftUIのViewの分割と命名について一緒に考えます。\r\nまずはウーニャがViewの分割や命名の考え方を話すので、それについてコメントを頂き、議論してよりいいViewの構築を考えます。\r\n\r\nかなりふあんですが、だいじょうぶます。がんばるます。",
"accepted": true,
"track": {
"name": "Track A",
"sort": 1
},
"starts_at": "2022-09-10T17:15:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "uhooi",
"kana": "ウホーイ",
"twitter": "the_uhooi",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/ef3805a0-b669-493a-9cae-f5ecad9e67e5.jpg"
},
"fav_count": 19,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "3e62853f-464f-4a8c-8d2b-216cdb05e1f4",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/3e62853f-464f-4a8c-8d2b-216cdb05e1f4",
"title": "CICD構築・自動化入門",
"abstract": "プログラマーの三大美徳の一つと言われる怠惰さを一番発揮しやすい場所はどこでしょうか?\r\nそれはCICDを含む自動化の仕組みの構築にあると思います。\r\n\r\nソフトウェアの開発においてCICDはもはや必須です。\r\nではCICDで得られるものはなんでしょうか?\r\nそれは我々が余分な仕事をしなくて済む時間です。\r\n例えば、アプリをビルドするのに自分のPCを何十分も専有され、その間コードは一行も触れないなんてのは嫌なのです。\r\nそんな時間があるなら我々はもっと他にやりたいことがあるのです。\r\n面倒なことは機械が勝手にやって欲しいのです。\r\n\r\n本セッションでは今まで面倒な仕事を勤勉にこなしてきた人が明日から怠惰に過ごせるよう、普段の仕事を自動化していくための考え方と進め方についてお話します。\r\nそして導入した仕組みをコスト的に効率良く運用するためにどうすればいいか、導入した後の改善法についてもお話します。",
"accepted": true,
"track": {
"name": "Track B",
"sort": 2
},
"starts_at": "2022-09-10T18:10:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "くろるり",
"kana": "クロルリ",
"twitter": "kuroruri",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/d0c45480-d0b3-4440-ac41-ae8d6da461d0.jpg"
},
"fav_count": 5,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "fa1db2d6-2db6-489c-a2cc-cfbc4abeb34c",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/fa1db2d6-2db6-489c-a2cc-cfbc4abeb34c",
"title": "Dive into Mac Catalyst",
"abstract": "Mac Catalystは,iOS\/iPad OSと共通のプロジェクト,コードでmacOS Nativeアプリケーションも提供できるフレームワークです.さらに,Mac Catalystには,iOS\/iPad OSでしか扱えないHomeKit.frameworkなどのフレームワークを使ったアプリを開発できるなどの開発効率以上の価値をもたらす側面も持ちます.しかしながら,それを使った開発には,AppKitのAPIを利用できない,起動時に勝手にウィンドウが表示されてしまうなどの課題もあります.本セッションでは,Mac Catalystでアプリを開発する上で必須のテクを筆者が公開しているオープンソースのアプリをベースに紹介します.",
"accepted": true,
"track": {
"name": "Track D",
"sort": 4
},
"starts_at": "2022-09-10T18:10:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "吉田悠一",
"kana": "ヨシダユウイチ",
"twitter": "sonson_twit",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a337a3b4-965f-4684-8898-b443f749d68f.png"
},
"fav_count": 11,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "4f56de04-0d5c-49ba-b2f8-12b25e36ad32",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/4f56de04-0d5c-49ba-b2f8-12b25e36ad32",
"title": "SwiftPMのプラグイン機能をiOSアプリ開発に活用する",
"abstract": "iOSアプリ開発にSwift Package Manager(SwiftPM)を活用するパターンを見かけるようになってきました。アプリ内のモジュール分割をSwift Packageを使って実現するパターンです。\r\n\r\nこの際、Swift 5.5以前のSwiftPMはビルド時に(SwiftGenなどで)コード生成する、などの処理を記述できませんでした。そのため、Xcodeプロジェクトのビルドスクリプト機能を使う必要がありました。\r\nしかし、Swift 5.6でSwiftPMにプラグイン機能が追加されたことで、Xcodeのビルドスクリプト機能に頼る必要がなくなりました。\r\n\r\n本トークでは、SwiftPMのプラグイン機能について解説し、iOSアプリ開発でSwiftPMをより一層活用するためのプラクティスをお話しします。",
"accepted": true,
"track": {
"name": "Track A",
"sort": 1
},
"starts_at": "2022-09-10T18:10:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "宇佐見 公輔",
"kana": "ウサミ コウスケ",
"twitter": "usamik26",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a2e3859e-b0bf-4863-8d9d-c24fe5329c6c.jpg"
},
"fav_count": 17,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "d3d878aa-3d10-42bc-b1a5-455a420aae38",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/d3d878aa-3d10-42bc-b1a5-455a420aae38",
"title": "PWAの今とこれから、iOSでの対応状況",
"abstract": "ネイティブアプリと同様の機能をウェブアプリに追加できる技術、それがProgressive Web Apps (PWA)です。iOSでも近年、徐々にPWAの機能が追加されています。これらの流れは、ユーザービリティに重きを置く昨今の潮流に即しているように感じます。\r\n\r\nこの発表では、PWAの現状とその可能性についてお話しします。\r\n- PWAとは?\r\n - ウェブアプリのリーチと、ネイティブアプリの機能性を併せ持ったアプリ\r\n- PWAの各機能\r\n - ホーム画面へのアイコンの追加\r\n - キャッシュによるオフラインでの利用\r\n - カメラなどのハードウェアの利用\r\n - プッシュ通知 など\r\n- iOSでの対応状況\r\n - 各バージョンでの対応の歴史\r\n - プッシュ通知実装などの今後の対応\r\n- PWAの事例とこれから\r\n - アプリストア内外でのインストール\r\n- PWAを使うべきタイミング\r\n",
"accepted": true,
"track": {
"name": "Track E",
"sort": 5
},
"starts_at": "2022-09-10T18:10:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "木下郁英",
"kana": "キノシタイクヒデ",
"twitter": "i_kinopee",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/298c8d3b-20f9-4f42-99d1-053906e38cf2.jpg"
},
"fav_count": 6,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "912757f8-b8ef-4faf-8697-3a8a6eb38363",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/912757f8-b8ef-4faf-8697-3a8a6eb38363",
"title": "MLOps for Core ML",
"abstract": "MLOpsはML Operationsの略で、データ収集・前処理・学習・デプロイ・監視といった機械学習のライフサイクルの継続的な運用を効率化するための考え方や手法を総称してこう呼ばれています。たとえば、蓄積したデータを用いたモデルの再学習を定期的に自動実行し最新データに合うようモデルを改善し続ける仕組み、モデルを本番システムに自動デプロイする仕組み等が含まれます。機械学習をビジネスで本番運用するために不可欠な考え方として昨今ホットなトピックとなっています。\r\n\r\n一方で、Core MLモデルの世界ではMLOpsという考え方はまだそれほど広がっていないように思います。多くの場合は一度学習したモデルを利用し続けるか、手運用で再学習等を行っているのではないでしょうか。Core MLにMLOpsの考え方を導入しするとどのように継続的な運用を効率化できるのか、そのパターンを解説します。",
"accepted": true,
"track": {
"name": "Track C",
"sort": 3
},
"starts_at": "2022-09-10T18:10:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "堤 修一",
"kana": "ツツミ シュウイチ",
"twitter": "shu223",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/7f1dd104-099a-4fcd-a563-6297b1db0636.jpg"
},
"fav_count": 11,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "bf42ca20-8dae-4cbe-88d2-cb8dd4ce8536",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/bf42ca20-8dae-4cbe-88d2-cb8dd4ce8536",
"title": "広まれSafari Web Extensions!Safari Web Extensions の始め方",
"abstract": "iOS 15 から Safari の拡張機能である Safari Web Extensions の開発が出来るようになりました。\r\nすでに素晴らしい拡張機能がいつかかリリースされているものの、まだまだその数が少ないように感じます。\r\nそこで今回は Safari Web Extensions の開発が広まるように、その始め方を紹介します。\r\n具体的には、Safari Extension App のテンプレートの中身を解説しつつ、ある要素をHTMLから削除する拡張機能を作るまでの手順を紹介します。\r\nSafari Web Extensions の持つ可能性を感じて頂ければと思います。",
"accepted": true,
"track": {
"name": "Track E",
"sort": 5
},
"starts_at": "2022-09-10T18:45:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "matsue",
"kana": "マツエ",
"twitter": "base_front",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/f10291c4-dee2-48ca-b4a7-cabe9d239856.jpg"
},
"fav_count": 8,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "e4cf73c0-f66c-4a73-8499-6670de8c1a75",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/e4cf73c0-f66c-4a73-8499-6670de8c1a75",
"title": "iOSアプリ開発あるある4コマ〜2022年版〜",
"abstract": "iOSアプリ開発でよくあること(俗にいう「あるある」)を4コママンガでめちゃくちゃ面白く表現します。\r\n一昨年に続き昨年もXcodeがインストールできなかったので、今年こそ実際の開発のあるあるが言いたいです。",
"accepted": true,
"tags": [],
"speaker": {
"name": "uhooi",
"kana": "ウホーイ",
"twitter": "the_uhooi",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/ef3805a0-b669-493a-9cae-f5ecad9e67e5.jpg"
},
"fav_count": 10,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "d7f13f0d-346d-41d7-9697-f93749294131",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/d7f13f0d-346d-41d7-9697-f93749294131",
"title": "令和時代のXML処理を考える 〜もしあなたが巨大なXMLと相見える(あいまみえる)ことになったら〜",
"abstract": "アプリがネットワークなど外部サービスを通じてデータをやり取りすることはもはや当たり前になっています。\r\nそのデータの代表的な形式としてJSONがあり、これはSwiftではCodableを通して簡易に変換することができます。\r\n\r\nしかしデータ形式というものはJSONに限らず様々なものがあり、例えばXMLもその一種です。\r\n「iOSにはXMLParserというものが用意されているから、ドキュメント見ながら実装すれば余裕っしょ」\r\nもし、そのドキュメント通りに動作しなかったらどう思いますか?\r\n\r\nこのトークは、XMLを処理するにあたって、XMLParserを中心に、iOSでできること、できないことを洗い出していかに効率的に処理ができるかを突き詰めるトークとなります。",
"accepted": true,
"track": {
"name": "Track D",
"sort": 4
},
"starts_at": "2022-09-10T18:45:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "日向強",
"kana": "ヒュウガツヨシ",
"twitter": "coffeegyunyu",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0c8845ab-4898-48ce-86c6-38b0a2129d34.jpg"
},
"fav_count": 3,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "0eaf51be-3d6a-41f1-935a-bb771ab3837f",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/0eaf51be-3d6a-41f1-935a-bb771ab3837f",
"title": "iOSDC Japan 2022のパンフレットを盛り上げるイラスト",
"abstract": "何らかの形でiOSDC Japanに貢献したいので、パンフレットを盛り上げる奇妙で陽気なイラストを描きます。\r\n昨今、エンジニアの働き方としてリモートでの働き方も多くなりました。皆様はどんな働き方をしていますでしょうか?\r\n\r\n今回は、「まだ世の中には存在していないだろうけど、こんなリモートワークスタイルもあったらいいのでは?」をいくつかピックアップしてイラストにします。\r\n\r\n共感出来ないこと、間違いなし!!!!!",
"accepted": true,
"tags": [],
"speaker": {
"name": "リルオッサ",
"kana": "リルオッサ",
"twitter": "littleossa",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a249a303-5425-4507-a722-e28f77b6e1f1.jpg"
},
"fav_count": 6,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "4111383e-07b4-4b1d-8798-6b4e75b71a51",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/4111383e-07b4-4b1d-8798-6b4e75b71a51",
"title": "AkkeyLab流イミフクラッシュ解読術",
"abstract": "・手元で再現できない\r\n・心当たりのないクラッシュ\r\n・何ヶ月も触ってない行でクラッシュ\r\n\r\nこのように嫌な予感がする現象に皆さん一度は遭遇したことがあるのではないでしょうか。\r\nそして、調査手順次第ではもっと早く原因特定できたのに…と悔しい思いをしたこともあるかもしれません。\r\nそこで、本稿では効率的な原因探索方法を図を用いて解説いたします。\r\n\r\n・直近でアプリのリリースがなければサーバ側の調査(GCP を例にご紹介)\r\n・スタックトレースと合わせてクラッシュ直前のログも確認\r\n・外部要因が疑われる場合は Twitter を活用\r\nなどなど\r\n\r\nこのような調査手順に絶対的正解は存在しないため、チームでも属人化しがちな箇所ではないでしょうか。\r\nそこで、本稿を元にチームでアレンジを加え、秘伝のタレとして育ててみてはいかがでしょうか?ドメイン知識の薄い新メンバーも爆速で難問解読のプロになること間違いなしです!",
"accepted": true,
"tags": [],
"speaker": {
"name": "AkkeyLab",
"kana": "アッキーラボ",
"twitter": "AkkeyLab",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/34c44ff4-7d0f-4e23-b783-13538313cf72.jpg"
},
"fav_count": 7,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "8f531f86-e463-4137-a5cf-d2758cbe2669",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/8f531f86-e463-4137-a5cf-d2758cbe2669",
"title": "Apple Silicon から学ぶ CPU の歴史",
"abstract": "・x86_64 と arm64\r\n・Rosetta から Rosetta2 へ\r\n・CPU アーキテクチャ変更2回目の Apple\r\n\r\n皆さんは現在利用している Mac の CPU アーキテクチャをご存知でしょうか?アーキテクチャと言っても MVVM とか Clean Architecture のようなソフトウェアアーキテクチャではなく、命令セットアーキテクチャと呼ばれるものになります。\r\n例えば、Intel であれば x64, Apple Silicon であれば ARM が命令セットアーキテクチャです。\r\n\r\n本稿では Apple Silicon を中心に CPU に関する歴史を文系・理系関係なく楽しんでいただけるようにご紹介します。\r\n日頃使っている開発環境がどのようなハードウェア設計のもとで動作しているかを知ることで、Apple の素晴らしいハードウェアが更に好きになること間違いなしです!",
"accepted": true,
"tags": [],
"speaker": {
"name": "AkkeyLab",
"kana": "アッキーラボ",
"twitter": "AkkeyLab",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/34c44ff4-7d0f-4e23-b783-13538313cf72.jpg"
},
"fav_count": 7,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "0b3cdd25-e4c9-4f67-a609-d386b88d61b7",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/0b3cdd25-e4c9-4f67-a609-d386b88d61b7",
"title": "SwiftUIやAttributedStringで使えるMarkdown記法入門",
"abstract": "iOS 15とXcode 13のリリースにより、SwiftUIのTextやAttributedString等で指定する文字列の中でMarkdown記法を使用できるようになりました。全てのMarkdown記法が使えるわけではありませんが、ボールドやイタリックなどの簡単な文字装飾であれば文言と一緒に文字装飾も定義できるため、文言変更と同時に文字装飾を変更したい場合でも文言定義を変更するだけで対応できるといったメリットがあります。\r\n\r\n本稿では、そんなMarkdown記法について、特徴や使い方、さらにはカスタム属性構文の使い方について解説します。\r\n\r\nコンテンツ(予定):\r\n\r\n1. iOS 15から使えるようになったMarkdown記法について\r\n2. AttributedString、SwiftUIでの利用方法\r\n3. iOS 13 \/ 14での利用について\r\n4. カスタム属性構文について",
"accepted": true,
"tags": [],
"speaker": {
"name": "栗山 徹",
"kana": "クリヤマ トオル",
"twitter": "kotetu",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/8c55895d-0a5f-4b18-a6e1-d1661fcb9569.jpg"
},
"fav_count": 7,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "729f1545-38df-4309-88f6-0481ab42e27a",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/729f1545-38df-4309-88f6-0481ab42e27a",
"title": "輝け!俺のViewController Part.2",
"abstract": "freddi氏「今年もクソ漫画、パンフに載せたります。」(参考: https:\/\/twitter.com\/___freddi___\/status\/1525016756095688706 )」今年は正攻法でプロポーザルで大胆にGo!いったい、iOS開発の地獄を見ているふれもんやロパ太たちの運命はどうなっちゃうの?!次回! freddi 伏す、ビルドスタンバイ!",
"accepted": true,
"tags": [],
"speaker": {
"name": "freddi",
"kana": "フレディ",
"twitter": "___freddi___",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/b4794539-cc02-45e6-b08a-c75df3357f03.jpg"
},
"fav_count": 5,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "c7306ef2-0e84-442d-a043-1a558403ad7d",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/c7306ef2-0e84-442d-a043-1a558403ad7d",
"title": "SwiftPMプラグインの実装と活用",
"abstract": "Swift 5.6でSwift Package Manager(SwiftPM)にプラグイン機能が追加されました。ビルドツールプラグインはSwiftPMのビルド時に外部ツールを実行します。また、コマンドプラグインはSwiftPMのコマンドを拡張して外部ツールを実行できるようにします。\r\n\r\nしかし、SwiftPMプラグインの情報はSwiftのプロポーザル以外にはあまりありません。そのため、実際にどのように実装すれば良いのかわからないと感じる人もいるのではないでしょうか。この記事では、プラグインの実装方法を具体的な実装コードを挙げながら解説します。また、プラグインの活用のしかたも紹介します。\r\n\r\n参考記事:Swift Package Managerのプラグイン機能 (https:\/\/qiita.com\/usamik26\/items\/1c2cec0903fea2e03344)",
"accepted": true,
"tags": [],
"speaker": {
"name": "宇佐見 公輔",
"kana": "ウサミ コウスケ",
"twitter": "usamik26",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a2e3859e-b0bf-4863-8d9d-c24fe5329c6c.jpg"
},
"fav_count": 10,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "dfd8c56c-468a-4115-804c-d1ca103eed62",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/dfd8c56c-468a-4115-804c-d1ca103eed62",
"title": "Swift-DocCによるチュートリアルの作り方",
"abstract": "Swift-DocCは、Swiftフレームワークやパッケージのためのドキュメント作成ツールです。Xcode 13に同梱される形でリリースされ、その後オープンソースソフトウェアになりました。\r\n\r\nSwift-DocCの面白い特徴に、チュートリアルを作成できるという点があります。AppleはSwiftUIのチュートリアルを公開していますが、このチュートリアルと同様のものがSwift-DocCを使えば作成できるのです。\r\n\r\nこの記事では、Swift-DocCを使ったチュートリアルの書き方を、具体的なコードを挙げて解説します。以前Swift-DocCの技術同人誌を執筆しましたが、今回の記事ではチュートリアルに焦点を当てて、より詳細に解説します。\r\n\r\n参考:Swift-DocCでドキュメントをつくる (https:\/\/type-d4-lab.booth.pm\/items\/3622327)",
"accepted": true,
"tags": [],
"speaker": {
"name": "宇佐見 公輔",
"kana": "ウサミ コウスケ",
"twitter": "usamik26",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a2e3859e-b0bf-4863-8d9d-c24fe5329c6c.jpg"
},
"fav_count": 15,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "7d448927-025e-4412-baff-e60ff857c2f7",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/7d448927-025e-4412-baff-e60ff857c2f7",
"title": "Swift Package Manager Command Plugins で任意の処理を実行してみよう",
"abstract": "Swift 5.6 から Swift Package Manager に Command Plugins の機能が追加されました。\r\nこの機能を用いることで、 Swift Package Manager のコマンドを拡張し、独自にカスタマイズしたコマンドを実行することができるようになります。\r\nこれによって、タスクランナーのようなものを Swift のコードで実装し、 CI やコマンドラインから実行することが可能になります。\r\nこの原稿では、 Command Plugins の作り方を実際のコードを交えて紹介していきます。",
"accepted": true,
"tags": [],
"speaker": {
"name": "多鹿豊",
"kana": "タジカユタカ",
"twitter": "yut_taj",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/de8c8bd1-071d-4202-8206-9abf3e03de2a.jpg"
},
"fav_count": 6,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "3947fe8c-b132-4b4c-a79c-b5ebfdffd044",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/3947fe8c-b132-4b4c-a79c-b5ebfdffd044",
"title": "不具合や仕様もれを減らすための勘所とユニットテストで学ぶ簡単事例集",
"abstract": "アプリ開発の過程で、仕様のミスリード・不十分な仕様把握・説明の解釈ミス等で、本来の意図との実際の成果物で齟齬が生まれる事は、常に起こる可能性はありますが、ユニットテストによって事前にそのリスクを防止する取り組みは、仕様把握や機能担保の面で有効な手段になります。\r\n\r\n本稿ではその「ありがたみ」と感じられる簡単な例を、RxSwift \/ Quick \/ Nimble \/ SwiftyMockyを利用を想定したコードを通して解説する予定です。\r\n\r\nその中でも特に、\r\n\r\n1. 仕様で本当に抜け漏れがないかを確認する場合\r\n2. 言葉ではシンプルだが実際に正しいかが見えにくい場合\r\n3. 実は細かな点に気を配ってみると疑問が生まれる場合\r\n4. その他画面の中でテストがあると良さそうな部分を探り出す着想\r\n\r\n等の簡単な実装コードやテストコードの事例を交えながら解説できればと思います。",
"accepted": true,
"tags": [],
"speaker": {
"name": "酒井文也",
"kana": "サカイフミヤ",
"twitter": "fumiyasac",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/1ead0d90-6aa1-42cc-b8cd-eae61b5ea168.jpg"
},
"fav_count": 7,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "e9662262-5a4a-4b11-96a1-908765688d30",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/e9662262-5a4a-4b11-96a1-908765688d30",
"title": "API 繋ぎこみトラブル撲滅委員会",
"abstract": "API 繋ぎこみを後回しにした経験、皆さんありますでしょうか。\r\n\r\n・API 側の問題に気づくのが遅れる\r\n・サーバ側の開発スピードによって、作業を中断せざるを得ない\r\n・API 側の仕様を無視した実装になっていることに気づき、UI から作り直し\r\n\r\n実装順序次第ではこのような現象に遭遇してしまうかもしれません。\r\n本稿では、本業と複数の副業で実践済みのテクニックをご紹介します!\r\n\r\n・アプリ開発者目線で見る OpenAPI\r\n・XcodePreviews 活用術\r\n・[Moya](https:\/\/github.com\/Moya\/Moya) 利用時の Stub 活用術\r\n\r\n上記3項目を実例とともに初心者〜中級者向けに執筆いたします。大規模なリファクタリング不要で、読んでいただいた直後から実践・成果を実感していただけます!",
"accepted": true,
"tags": [],
"speaker": {
"name": "AkkeyLab",
"kana": "アッキーラボ",
"twitter": "AkkeyLab",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/34c44ff4-7d0f-4e23-b783-13538313cf72.jpg"
},
"fav_count": 6,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "aadc6007-ccf6-42e5-9318-aae24cde62c8",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/aadc6007-ccf6-42e5-9318-aae24cde62c8",
"title": "async\/awaitで作るCLIツール",
"abstract": "WWDC2021で発表されたasync\/awaitを始めとするSwift Concurrencyですが、CLIツールの実装でも使うことができます。\r\nまた、実はSwift5.5.2からLinuxでも扱えるようになっているんです。\r\n\r\n本稿では、自作のCLIツールを一部抜粋してBefore\/Afterの形でasync\/awaitをどのように適用したかご紹介します。",
"accepted": true,
"tags": [],
"speaker": {
"name": "417.72KI",
"kana": "シイナナツキ",
"twitter": "417_72ki",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0668ee6a-114e-4dfa-a4a4-c2118b208c31.jpg"
},
"fav_count": 8,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "cd5bf840-2dbc-4683-844e-07b999fbbe31",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/cd5bf840-2dbc-4683-844e-07b999fbbe31",
"title": "Apple Archive Frameworkの使い方",
"abstract": "iOS 14およびmacOS Big Sur以降ではApple製のファイル圧縮・展開のフレームワークであるApple Archive Frameworkが利用できます。データのエクスポート機能やシェア機能などで、複数のファイルを一つにまとめて送信したいときに便利です。サードパーティ製のアーカイブフレームワークなどを導入しなくても、一通りの機能が揃っています。ただApple Archive Frameworkはドキュメントが最低限しか書かれておらず、ドキュメントに掲載のサンプルコードをそのまま写せば使えるのですが、パラメータの意味などを理解せずに使うことはよくありません。本稿ではApple Archive Frameworkの使い方とドキュメントに載っていないパラメータの意味などを実際のコードを用いて解説します。",
"accepted": true,
"tags": [],
"speaker": {
"name": "岸川克己",
"kana": "キシカワカツミ",
"twitter": "k_katsumi",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/45e5a383-abb8-4424-9c7f-186eb802a1d2.jpg"
},
"fav_count": 23,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "ec4235b4-ce48-40b5-8eae-94027753a7f7",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/ec4235b4-ce48-40b5-8eae-94027753a7f7",
"title": "XCFramework を Swift Package Manager でもっと便利に扱う",
"abstract": "Xcode 11 からバイナリフレームワークを配信するための新たな方法として、 XCFramework が登場しました。\r\nこれ1つで様々なプラットフォームをターゲットにビルドできます。\r\n\r\nまた、Xcode 上で Swift Package Manager (SPM) も利用できるようになりました。\r\nしかし、現状では SPM に対応できていない、もしくは XCFramework のみ配信されているライブラリも依然存在し、全てを SPM で管理することが困難です。\r\n\r\nSPM では、XCFramework も Binary Target として登録することで全てを SPM で管理することが擬似的に実現できます。\r\n\r\n本稿では、 XCFramework を SPM に対応させるために必要なステップと、プライベートリポジトリで管理しているパッケージにアクセスするための Tips を紹介します。",
"accepted": true,
"tags": [],
"speaker": {
"name": "shimastripe",
"kana": "シマストライプ",
"twitter": "shimastriper",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/317a9359-3457-45f3-9fa4-452e1a7f7feb.jpg"
},
"fav_count": 8,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "a5b23fcf-2f6b-479b-99f4-58654d0ff5ae",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/a5b23fcf-2f6b-479b-99f4-58654d0ff5ae",
"title": "20分間で振り返るIn-App Purchaseの歴史",
"abstract": "iOSにおけるIn-App Purchase(アプリ内課金)はiOS 3から利用可能であり、その歴史は10年以上に及びます。\r\nこの長い歴史の中で、Ask to BuyやUpgrade \/ Downgrade、お試しオファーなどの多くの仕組みが追加され、やれることが格段に増えました。\r\nアプリ内課金をサポートするための仕組みも、Store Kit 2による実装方法の変更やアプリ内での返金機能をはじめ、Server NotificationsやTransaction Receiptのフォーマットの変更など、新しいものが次々にリリースされたり、StoreKit Testingによって自動テストが出来たりSandbox環境がアップデートされたりなど、課金のテストにまつわる状況も大きく変わりました。\r\n本トークでは、20分間でIn-App Purchaseの激動の歴史をじっくり振り返っていきます。",
"accepted": true,
"track": {
"name": "Track A",
"sort": 1
},
"starts_at": "2022-09-10T18:45:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "inokinn",
"kana": "イノキン",
"twitter": "inokinn",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/6e9347db-5cf8-4f32-8dfe-7da08f4c78aa.jpg"
},
"fav_count": 8,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "c39553cc-c340-455e-b2f1-bcc07113ef42",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/c39553cc-c340-455e-b2f1-bcc07113ef42",
"title": "ChaChaPoly and You, CryptoKit Explained",
"abstract": "「え、CryptoKitを使いたいけど、いつ、何を使うべきかわからない。。。」の方はもう心配いらない。このトークで一緒にCryptoKitの謎を解きましょう!\r\n\r\nユーザーのデータを暗号化しないといけない開発案件が出てきて「CryptoKitを使うチャンス!」を思って調べてきました。それでみんなにそのKnowledgeを共有したいと思っています!みんなCryptoKitマスターになりましょう!\r\n\r\nContent\r\n- CryptoKitでできること\r\n- CryptoKitを使った対象鍵暗号(Symmetric Encryption)について\r\n- いつそのEncryptionを使うべきか\r\n- 実装方法\r\n\r\nデータセキュリティーのために知っておきましょう!",
"accepted": true,
"track": {
"name": "Track C",
"sort": 3
},
"starts_at": "2022-09-10T18:45:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "Adam Henry",
"kana": "アダムヘンリー",
"twitter": "monolithic_adam",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/750c04d5-4c26-4267-bc94-fd45150220bf.jpg"
},
"fav_count": 5,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "46aaee33-31f5-4872-8cef-ff18ca7a1b4c",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/46aaee33-31f5-4872-8cef-ff18ca7a1b4c",
"title": "量子情報工学への招待 〜iOSアプリ開発を通して学んでみよう〜",
"abstract": "量子コンピュータや量子情報、量子暗号といった言葉を聞いたことがある人は多いと思います。これらには量子力学という物理の学問が使われています。\r\nそんな量子力学が作り出す不思議な世界へiOSアプリ開発、Xcodeのシュミレータを用いてご説明します。\r\n物理学の専門性がない方にもご理解いただけるように難しい話はしません。量子力学の面白さ、不思議さを知ってもらうためのトークです。",
"accepted": true,
"track": {
"name": "Track B",
"sort": 2
},
"starts_at": "2022-09-10T18:45:00+09:00",
"length_min": 20,
"tags": [],
"speaker": {
"name": "REON",
"kana": "レオン",
"twitter": "reon_ios_cat",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/544ee29a-af1b-4eb8-bd46-cedd86a8a6bf.jpg"
},
"fav_count": 14,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "42f8c563-8ca4-43a5-b9da-70cdc57258ea",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/42f8c563-8ca4-43a5-b9da-70cdc57258ea",
"title": "「問題はソースコードではない!?」長生きするアプリの「品質低下」の謎",
"abstract": "アプリを一から作り直したことはありますか?\r\n\r\nソースコードがごちゃごちゃで可読性が低かったり、\r\n修正が難しいバグが多かったりして「一旦作り直し」と\r\n判断されたこともあるかもれません。\r\n\r\n作り直したものも最初はピカピカだったが、時間と共に\r\n汚くなり、またバグの多いごちゃごちゃした\r\nソースコードになり、開発が難しい状態に戻ってしまいます。\r\n\r\nそしてまた、作り直すか、大規模なリファクタをするか、\r\n我慢してごちゃごちゃなまま開発を継続するかの選択が\r\n迫られます。\r\n\r\nどの選択も非常にコストがかかります。\r\n\r\nどうしてこういうことが起きるのでしょうか?\r\n\r\n今回は\r\n- なぜ多くのアプリは長生きするとごちゃごちゃになるのか\r\n- なぜ作り直しても同じ問題が再発するのか\r\n- これらの問題を避けることができるのか\r\nについて話したいと思います。\r\n\r\nヒント: 問題はソースコード以外のところにあるかもしれません!",
"accepted": true,
"track": {
"name": "Track C",
"sort": 3
},
"starts_at": "2022-09-10T19:20:00+09:00",
"length_min": 20,
"tags": [
{
"name": "スポンサーセッション",
"color_text": "#ffffff",
"color_background": "#28a745"
}
],
"speaker": {
"name": "アンドレカンドレ",
"kana": "アンドレカンドレ",
"twitter": "andrekandore",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/9822f483-1c1f-432c-9085-bd63b0a41dcc.jpeg"
},
"fav_count": 7,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "e9b641fa-33be-43c9-829e-44a69a595fd2",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/e9b641fa-33be-43c9-829e-44a69a595fd2",
"title": "メタバースを支えるエンジニアの生態について",
"abstract": "iOSDCに参加のエンジニアのみなさん、メタバースの開発は Unity や Unreal Engine を駆使するような 3DCG エンジニアの担当領域だと思って敬遠していませんか? 私達クラスター株式会社のカジュアル面談でも、よく聞かれる質問の一つは iOS\/Andoird\/Web\/etc… エンジニアでも活躍する場所が有りますか? というものです。実際は iOS\/Andoird\/Webエンジニアが多数在籍していますし、更には音響技術が得意なエンジニアから機械学習の研究者まで様々な人材が所属しています。また、その出身となった業界もゲームメーカーやWeb系開発会社、金融機関などなど様々です。本公演では、どんなエンジニアがどんな得意分野をもってクラスターに参画してきたかをご紹介するとともに、もう一つのよくある質問である、どんな開発フローで業務を進めているのかについてをお話しします。",
"accepted": true,
"track": {
"name": "Track E",
"sort": 5
},
"starts_at": "2022-09-10T19:20:00+09:00",
"length_min": 20,
"tags": [
{
"name": "スポンサーセッション",
"color_text": "#ffffff",
"color_background": "#28a745"
}
],
"speaker": {
"name": "倉井 龍太郎",
"kana": "クライ リュウタロウ",
"twitter": "kurain",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/c972770d-1dcc-4d86-9d0e-f83be22bd19e.png"
},
"fav_count": 3,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "4fcfd131-2313-46dd-bd1b-f1a917148c46",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/4fcfd131-2313-46dd-bd1b-f1a917148c46",
"title": "2022年の新規アプリ開発で採用した技術",
"abstract": "メドピア株式会社では、2022年2月にアプリ slis[スリス] をリリースしました。0からの新規開発ということで既存関連の制約などはなく、Swift Package Manager、Swift Concurrency、Xcode Cloud など新しいものを取り入れて開発しています。\r\nこのセッションではこれら採用した技術を中心に今回の新規開発について紹介します。",
"accepted": true,
"track": {
"name": "Track D",
"sort": 4
},
"starts_at": "2022-09-10T19:20:00+09:00",
"length_min": 20,
"tags": [
{
"name": "スポンサーセッション",
"color_text": "#ffffff",
"color_background": "#28a745"
}
],
"speaker": {
"name": "新井 美香",
"kana": "アライ ミカ",
"twitter": "satsukiasa",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/b5613d13-ea5f-4b7c-ac9a-232e0fc9d86d.jpg"
},
"fav_count": 6,
"feedback": {
"open": false
}
},
{
"type": "timeslot",
"uuid": "d0c3eaa8-31f8-40fc-bd51-1fb46f9feeb5",
"title": "Today's Update",
"abstract": null,
"track": {
"name": "Track A",
"sort": 1
},
"starts_at": "2022-09-10T19:50:00+09:00",
"length_min": 10
},
{
"type": "timeslot",
"uuid": "d82e1bcd-5578-438e-9785-1c78a5525804",
"title": "オープニング",
"abstract": null,
"track": {
"name": "Track A",
"sort": 1
},
"starts_at": "2022-09-11T10:00:00+09:00",
"length_min": 40
},
{
"type": "talk",
"uuid": "1bbc3929-1302-4d62-9d0d-19de7083562d",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/1bbc3929-1302-4d62-9d0d-19de7083562d",
"title": "Swift Concurrency Next Step",
"abstract": "Swift5.5で登場したSwift Concurrencyは、非同期処理を簡潔で安全に扱える機能です。主な機能は既に追加済ですが、現在も新しい機能の追加や改善が行われています。\r\n今回は、この1年で見られた進化や実装上のTipsなどを紹介します。また、Swift6以降に既存のコードが動かなくなるリスクを最小限に抑えるための段階的導入方法など、ちょっと先の未来についても見ていきます。\r\n\r\n例:\r\n\r\n- Swift5.6以降の新機能や変更\r\n- エラーやキャンセル時の子タスクの挙動\r\n- Taskのinitとselfの関係\r\n- Actorが切り替わるタイミング\r\n- swift-async-algorithmsから見る実装方法\r\n- iOS frameworkとの連携\r\n- Swift6で何が起こるのか?\r\n\r\nこれからConcurrencyをもっと使ってみようと思っているみなさまのお役に立ちましたら幸いです。",
"accepted": true,
"track": {
"name": "Track B",
"sort": 2
},
"starts_at": "2022-09-11T11:05:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "shiz",
"kana": "しず",
"twitter": "stzn3",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/f774feb6-6744-4bad-93f5-7c3fe516058b.jpg"
},
"fav_count": 25,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "517cb156-3905-4dd7-b666-d2200049d822",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/517cb156-3905-4dd7-b666-d2200049d822",
"title": "アニメーションAPIのすべて",
"abstract": "iOSにはさまざまなアニメーションAPIがあります。思いつくだけでもUIView.animate()、Core Animation、UIViewPropertyAnimatorがあり、Core Animationが提供するAPIは膨大ですべてを使った人は稀でしょう。物理演算を追加するUIKit Dynamicsもあります。さらにSwiftUIでは.animation()や.withAnimation()というModifierによる手段が提供されています。\r\nこれらのAPIがカバーする範囲は重なっていて、同じことを別のAPIでも実現できます。それぞれのAPIをどのように使い分けるのでしょうか?\r\n\r\nこの講演では各APIの使い方を実用的なパターンの実例を示しながら解説し、どのような判断で使い分けるべきかを示します。すべてを明確に理解し、表現の引き出しを増やして、アニメーションをマスターしましょう!",
"accepted": true,
"track": {
"name": "Track A",
"sort": 1
},
"starts_at": "2022-09-11T11:05:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "岸川克己",
"kana": "キシカワカツミ",
"twitter": "k_katsumi",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/45e5a383-abb8-4424-9c7f-186eb802a1d2.jpg"
},
"fav_count": 36,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "889edc71-f96f-47a1-bc0e-36e8ffe3a3c3",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/889edc71-f96f-47a1-bc0e-36e8ffe3a3c3",
"title": "Unreal EngineとiPhoneを使って始めるリアルタイムAR配信",
"abstract": "ここ数年、格好良いAR表現が付いた映像が増え、皆も色々な所で目にしていると思います。\r\nエンジニアなら自分でも実装して実現したくないでしょうか?\r\n\r\n私は昨年からARを本業としてAR表現があるリアルタイム配信をいくつか実施してきました。\r\nUnreal Engineを使いカメラとトラッキング機材を中心に連携し作成していきます。\r\n\r\nその実現に必要な要素を解説しスキルを伝授していきます!\r\n\r\n- ワークフロー解説\r\n- CG原点を置きCGの空間と現実空間を一致させる方法\r\n- カメラトラッキング方法\r\n- Unreal Engineを使った基本的なシーン作成\r\n- iPhoneを使う手法\r\n- PTZカメラを使う手法\r\n\r\nデモと手法解説を軸に、AR表現に興味を持った人がさらに興味を持つようなセッションです。",
"accepted": true,
"track": {
"name": "Track D",
"sort": 4
},
"starts_at": "2022-09-11T11:05:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "服部 智",
"kana": "ハットリ サトシ",
"twitter": "shmdevelop",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/cb749312-75d9-4dbe-8fe9-01f297722d67.jpg"
},
"fav_count": 7,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "91c9a436-a974-43aa-afdf-31f263f77c31",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/91c9a436-a974-43aa-afdf-31f263f77c31",
"title": "あなたの知らない AR の可能性を空間レベルで拡げる VPS の世界",
"abstract": "SnapのCustom Landmarker、ARCoreのGeospatial API、NianticのLightship、そしてARKit 6のLocation Anchor、他にもありますが、これらはすべてVPSと呼ばれるものです。\r\n\r\nここで言うVPSは“Virtual Private Server”ではなく“Visual Positioning Service\/System”です。\r\n\r\n緯度経度をもとにするGPSとして馴染み深い“Global Positioning System”に対し、画像による空間情報をもとに自己位置推定する技術がVPSです。\r\n\r\n本セッションでは、今後のARに関する要素技術として重大な位置づけになると考えられる “VPS”そのものとその周辺技術、実際のユースケースや概況に加え、いずれかのVPSソリューションを用いた「実際に動作するデモ」を交えて解説します。\r\n",
"accepted": true,
"track": {
"name": "Track E",
"sort": 5
},
"starts_at": "2022-09-11T11:05:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "HEAVEN chan \/ ikkou",
"kana": "イッコウ",
"twitter": "ikkou",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/6a65f059-8be6-4a25-96fd-51841bbb8f28.jpg"
},
"fav_count": 7,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "aa8ecff3-682b-4127-93ac-321b9ec4cf30",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/aa8ecff3-682b-4127-93ac-321b9ec4cf30",
"title": "Swift アクターモデルと Elm Architecture の融合",
"abstract": "この発表では、Swift アクターモデルと Elm Architecture を融合したフレームワーク「Actomaton」について、実用例を中心に紹介します。\r\n\r\nhttps:\/\/github.com\/Actomaton\/Actomaton\r\n\r\nComposable Architecture では飽き足らないマニア向けの内容を予定しています。\r\n\r\n1. Actomaton の簡単な紹介\r\n2. アプリの状態管理の基本的な例:「ディープリンク」「タイムトラベル」\r\n3. 並行タスクキューを用いた副作用管理の例:「並行ダウンローダー」「並行 Web クローラー」\r\n4. アクター(オブジェクト指向)と Elm Architecture (関数型プログラミング)の両方を用いた計算モデルの親和性について\r\n5. (時間があれば)やはり圏論。圏論は全てを解決する。",
"accepted": true,
"track": {
"name": "Track C",
"sort": 3
},
"starts_at": "2022-09-11T11:05:00+09:00",
"length_min": 40,
"tags": [],
"speaker": {
"name": "稲見 泰宏",
"kana": "イナミ ヤスヒロ",
"twitter": "inamiy",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/725c08cd-e222-453f-b65e-0127a387b903.jpg"
},
"fav_count": 10,
"feedback": {
"open": false
}
},
{
"type": "talk",
"uuid": "f5526982-6ec8-4214-8236-c95d9523d529",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/f5526982-6ec8-4214-8236-c95d9523d529",
"title": "Kotlin Multiplatform Mobile でiOSとAndroidの実装差異を無くす",
"abstract": "iOSアプリと一緒に、Androidアプリを作成することはよくあります。\r\n2つのアプリを同時に開発すると問題がよく起きます。「iOSとAndroidで動きが違う」と。\r\n実装するエンジニアの認識のズレ、言語仕様の違い、例えどれだけ念入りにやったとしてもこの問題はいつか必ず発生することでしょう。\r\n\r\nそのような問題をKMM(Kotlin Multiplatform Mobile)を用いて解決します。\r\nアプリのビジネスロジックをコードレベルから共通化し、OS間での差異が起こらないような開発ができる上に、ビジネスロジック部分の記述はKMM一つで済むようになります。\r\n\r\nこのセッションでは、基本的なKMMの概念の説明から、実際にiOSのプロジェクトへのKMM導入し動作させるまでを、弊社での取り組みを交えて解説いたします。",
"accepted": true,
"track": {
"name": "Track D",
"sort": 4
},
"starts_at": "2022-09-11T12:00:00+09:00",
"length_min": 20,
"tags": [
{
"name": "スポンサーセッション",
"color_text": "#ffffff",
"color_background": "#28a745"
}
],
"speaker": {
"name": "新田 陸",
"kana": "ニッタ リク",
"twitter": "hal8563",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/b99d8e5e-66b3-4d52-a64f-cf7b484762e9.png"
},
"fav_count": 4,
"feedback": {