-
Notifications
You must be signed in to change notification settings - Fork 3
/
proposals.json
5881 lines (5881 loc) · 509 KB
/
proposals.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
{
"proposals": [
{
"uuid": "f0b7cbcf-a597-4e1e-8895-db16fb3d0655",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/f0b7cbcf-a597-4e1e-8895-db16fb3d0655",
"title": "Core ML Toolsにコミットしつつ、Pytorch製深層学習モデルをCore MLで動かそう",
"abstract": "モノグサ株式会社では記憶アプリMonoxerを開発・リリースしています。\r\niOS版のMonoxerで深層学習モデルを使うために、Core ML Toolsを使ってPytorch製のモデルをCore MLで動作するモデルにコンバートする必要がありました。\r\nCore ML Toolsを使ってみるとわかりづらいポイントや、モデルが未サポートの演算を含んでおりモデルをコンバートできないといったことがありました。\r\nそこでこのトークでは、Core ML Toolsをスムーズに使う方法や未サポートの演算をどうすればサポートできるかをシェアします。\r\n - Core ML \/ Core ML Toolsの概要\r\n - Core ML Toolsの基本的な使い方\r\n - Core ML Toolsがうまく動かなかった時\r\n - Core ML Toolsに未サポートの演算を追加するには",
"accepted": false,
"speaker": {
"name": "深谷",
"kana": "フカタニ",
"twitter": "fukafukatani",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/6c6d18f5-4558-48a7-9de3-9e7a96b7e75e.jpg"
},
"created": "2022-05-13T17:10:02+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "matsue",
"kana": "マツエ",
"twitter": "base_front",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/f10291c4-dee2-48ca-b4a7-cabe9d239856.jpg"
},
"created": "2022-05-14T11:42:39+09:00",
"timetable": {
"track": "Track E",
"starts_at": "2022-09-10T18:45:00+09:00",
"length_min": 20
},
"feedback": {
"open": false
}
},
{
"uuid": "d824fc5d-191a-4864-899a-339d830ed182",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/d824fc5d-191a-4864-899a-339d830ed182",
"title": "SwiftUI in UIKit で開発する世界",
"abstract": "【概要】\r\nSwiftUIが登場してから3年が経とうとしています。\r\n\r\n古いOS対応もあり、すぐに導入できなかったアプリも多かったでしょう。\r\nそんな中、新規のアプリを全てSwiftUIで構成した例も増えてきました。\r\n\r\nしかし、現実問題として既存の多くのアプリはUIKitで構成されています。\r\nこの資産を活かしつつ、どのようにSwiftUIと歩んでいくのかを考えていく必要があります。\r\n\r\n今回はそんな悩みを抱えつつ、私達のプロダクトで行なってきた共存の仕方をご紹介していきます。\r\n\r\n【目次】\r\n1.SwiftUIとUIKit\r\n-SwiftUIの強みと弱み\r\n-実装判断の基準\r\n-責務の分け方\r\n\r\n2.アーキテクチャー\r\n-既存のアーキテクチャー\r\n-SwiftUIとUIKitのアーキテクチャー共存\r\n\r\n3.課題\r\n-共存の向き・不向き\r\n-車輪の再発明\r\n-実装において注意すべき点\r\n\r\n※内容が前後する可能性があります",
"accepted": true,
"speaker": {
"name": "Hiromu Tsuruta",
"kana": "ヒロム ツルタ",
"twitter": "hcrane14",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/7f77375e-4ae8-44bd-aa84-e57f1d95d7b0.jpg"
},
"created": "2022-05-16T10:28:54+09:00",
"timetable": {
"track": "Track C",
"starts_at": "2022-09-12T10:50:00+09:00",
"length_min": 20
},
"feedback": {
"open": false
}
},
{
"uuid": "315d1c2b-c177-4e27-b95c-ea25d16ab584",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/315d1c2b-c177-4e27-b95c-ea25d16ab584",
"title": "みんなが幸せになるErrorを考える",
"abstract": "iOSに限らず、アプリはいつもと同じように使っていても、ユーザーの環境はたまたアプリの状態など、様々な原因によってエラーが発生します。エラーハンドリングをアプリ側で行なった後、アラートやテキストなどでユーザーに伝えることは多いと思います。\r\n\r\n- 「エラーが発生しました」\r\n- 「原因不明のエラーです」\r\n- 通信に問題がないはずなのに「通信エラーです」\r\n\r\nこれらのエラーメッセージは、どうやったらエラーの状態から抜け出せるかわからず、お問い合せをいただいても解決できない場合がほとんどです。\r\n\r\nこのトークでは、エラーのハンドリングについて、どうやったらハンドリングしやすいエラーの仕組みが作れるのか、またErrorはどのように利用するのが望ましいのか、AppleのクラスやAPIデザインに着目し、ユーザー、サービス、開発者全てが幸せになる、簡単で鮮明なエラー作成をみんなで考えるトークになります。",
"accepted": false,
"speaker": {
"name": "日向強",
"kana": "ヒュウガツヨシ",
"twitter": "coffeegyunyu",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0c8845ab-4898-48ce-86c6-38b0a2129d34.jpg"
},
"created": "2022-05-16T21:56:42+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "2d582482-aeb1-4744-a458-586da35eeb6d",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/2d582482-aeb1-4744-a458-586da35eeb6d",
"title": "GraqhQLリクエストのパフォーマンスをFirebase Performance Monitoringで計測する方法",
"abstract": "株式会社エクサウィザーズが提供する介護記録アプリ「CareWiz ハナスト」ではAPIサーバーとの通信にGraphQLとRESTを使用しています。\r\n\r\n便利なGraphQLですが、Firebase Performance Monitoringで通信時間を計測しようとすると問題が発生します。\r\nFirebaseコンソール上ではGraphQLクライアントからのリクエストが全て同一のものとして扱われてしまうのです。\r\nなぜならGraphQLのリクエストは基本的に同一エンドポイントへのPOSTリクエストとなるからです。\r\n\r\n本 LTではそのような問題にどのように対処したのか、具体的な実装を交え解説します。",
"accepted": false,
"speaker": {
"name": "伊賀 裕展",
"kana": "イガ ヒロノブ",
"twitter": "iganin_dev",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/5d899e18-b7d9-449a-93ca-6cbf2bc692c2.jpg"
},
"created": "2022-05-18T17:49:22+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "1885cbbd-3898-40ff-a07e-e2d69b5fac6a",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/1885cbbd-3898-40ff-a07e-e2d69b5fac6a",
"title": "iOSにおけるWakeword検知機能の実装",
"abstract": "株式会社エクサウィザーズが提供する介護記録アプリ「CareWiz ハナスト」は、\r\nフォアグラウンド状態において有効な独自のWakeword検知機能と音声によるアプリ操作機能を備えています。\r\n\r\nWakeword検知を行うためには常時音声を取得する必要性があり、独特な実装を行い問題に対処する必要があります。\r\n本セッションでは、Wakeword検知機能の実装を中心に下記の内容をお伝えする予定です。\r\n\r\nWakeword検知\r\n・Wakeword検知の方法\r\n・アプリでの実装\r\n・SoundAnalysisを用いた精度向上\r\n\r\n常時録音に伴う問題と対応\r\n・イヤホンの脱着などの音声インプットの変更\r\n・電話などによる中断\r\n \r\n音声によるアプリ操作\r\n・音声とアプリの操作の連携\r\n・Wakewordから自由発話認識への連携",
"accepted": true,
"speaker": {
"name": "伊賀 裕展",
"kana": "イガ ヒロノブ",
"twitter": "iganin_dev",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/5d899e18-b7d9-449a-93ca-6cbf2bc692c2.jpg"
},
"created": "2022-05-18T18:02:11+09:00",
"timetable": {
"track": "Track D",
"starts_at": "2022-09-12T10:15:00+09:00",
"length_min": 20
},
"feedback": {
"open": false
}
},
{
"uuid": "e1ebf24c-a7de-4750-a89b-ac8dac1b466d",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/e1ebf24c-a7de-4750-a89b-ac8dac1b466d",
"title": "SwfitUI時代の状態管理アーキテクチャの新潮流を捉える!",
"abstract": "SwiftUIのアプリ開発において、状態管理をどうするか、という問題があります。\r\n\r\n\u2028宣言的UIであるSwiftUIの登場により、SwiftUI時代に合った状態管理アーキテクチャを検討する必要があると感じています。\r\n\r\n現在、 SwiftUI開発でのデファクトスタンダードな状態管理アーキテクチャと呼べるような何かは存在せず、試行錯誤している段階なのかなと思います。\r\n\r\nそこで、このセッションでは、SwiftUI時代における以下の4つの状態管理手法について比較検討し、状態管理の新潮流を捉えたいと思います。\r\n\r\n・MVVM\r\n・The Composable Architecture(TCA)\r\n・ReSwift\r\n・SwiftHooks & RecoilSwift",
"accepted": false,
"speaker": {
"name": "karamage",
"kana": "カラマゲ",
"twitter": "kara_mage",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/2bf6a496-6e5a-44b4-b357-b7cc2ffc67cd.jpg"
},
"created": "2022-05-19T15:22:18+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "f944e4ed-7d29-4a0b-8b6e-312b126514ae",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/f944e4ed-7d29-4a0b-8b6e-312b126514ae",
"title": "M1対応プロジェクトと非対応プロジェクトを行き来するためのRosetta 2切り替え術",
"abstract": "M1 macの登場から1年半が経過し、今ではストアのラインナップからIntel macが消えました。\r\nしかし未だにM1対応されていないライブラリやプロジェクトが多々あります。\r\nM1環境でもそういったプロジェクトで開発するために出てくるのがRosetta 2ですが、現状このRosetta 2の切り替えはGUI上でしか行なえません。\r\nこれでは複数の開発が同時進行している場合非常に不便です(え?そんな状況は無い?)。\r\n\r\n本トークでは、Appleの非公開APIと黒魔術を利用してRosetta 2のオン\/オフを切り替えるツールの開発を通じて得た知見を紹介します。\r\n\r\n話す内容\r\n- Rosettaについて\r\n- Objective-CとSwiftの混合パッケージの作成方法\r\n- Rosettaのオン\/オフを切り替える非公開API\r\n- LaunchServices.plistについて",
"accepted": false,
"speaker": {
"name": "417.72KI",
"kana": "シイナナツキ",
"twitter": "417_72ki",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0668ee6a-114e-4dfa-a4a4-c2118b208c31.jpg"
},
"created": "2022-05-19T15:39:36+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "8d472291-939a-4d15-90cf-925cea69c2a7",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/8d472291-939a-4d15-90cf-925cea69c2a7",
"title": "JailBreakと向き合おう",
"abstract": "昔はiOSのJailBreakはよく行われていましたが、最近はiOSのアップデートによりJailBreakは少なくなったような印象です。\r\nとはいえ何もしないのではなく、やれることはやっておいたほうがいいと思います。\r\n\r\n本LTでは、JailBreakはどのような手段があるのか、アプリはどのような対策ができるのか、自分なりに調べた結果を共有したいと思います。",
"accepted": true,
"speaker": {
"name": "darquro",
"kana": "ダークロ",
"twitter": "darquro",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/7da0037c-ffc9-445b-b62d-1572f6e475db.jpg"
},
"created": "2022-05-20T15:25:57+09:00",
"timetable": {
"track": "Track A",
"starts_at": "2022-09-12T15:10:00+09:00",
"length_min": 5
},
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "uhooi",
"kana": "ウホーイ",
"twitter": "the_uhooi",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/ef3805a0-b669-493a-9cae-f5ecad9e67e5.jpg"
},
"created": "2022-05-22T10:35:41+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "f61472a0-6013-4922-a8ae-e7c121a1baa2",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/f61472a0-6013-4922-a8ae-e7c121a1baa2",
"title": "ある日、突然、著名ライブラリの共同開発者になったら",
"abstract": "「Feel free to cut a new tag\/release」\r\n(自由にリリースしていいよ)\r\n\r\nこちらはある著名ライブラリへPull requestを送ったときに、突然言われた言葉です。\r\n私はこの言葉とともにコラボレーター(共同開発者)へ招待され、自由にリリースできる権限を与えられました。\r\n\r\n「なんで、私がコラボレーターに!?」\r\n\r\nこのライブラリは海外の著名な企業が提供しています。\r\n海外で何の実績もない私がいきなりコラボレーターに招待され、何が起きたか理解できませんでした。\r\n\r\nしかし慌てません。\r\n最初のコメントへ冷静に :+1: の絵文字を付け、リリースを試みることに…\r\nそこで経験したこととは!?\r\n\r\n---\r\n\r\n本トークでは、私が著名ライブラリのコラボレーターとしてどんな感じで動き、何をしたかざっくり紹介します。\r\n私と同じく、突然コラボレーターになって慌てている人にオススメです。",
"accepted": false,
"speaker": {
"name": "uhooi",
"kana": "ウホーイ",
"twitter": "the_uhooi",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/ef3805a0-b669-493a-9cae-f5ecad9e67e5.jpg"
},
"created": "2022-05-22T11:42:28+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "10bacfe4-4e2b-400f-8acf-b547223b01cd",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/10bacfe4-4e2b-400f-8acf-b547223b01cd",
"title": "react-reconcilerでオレオレReact Nativeを作ろう!",
"abstract": "Reactの思想であるLearn Once, Write Anywhereを推し進めるため、React内部にはReactをどこでも動かせるようにするreact-reconcilerというパッケージが存在します。\r\n\r\nreact-reconcilerはReact DOMやReact Nativeで利用されているUIの差分検出処理のパッケージで、JSXで書かれたコンポーネントのマウントや更新通知を受け取れます。これを使って独自のレンダラーを作ってみましょう。\r\n\r\nこのトークでは、react-reconcilerのレンダラーをSwift(UIKit)で実装して自分だけのReact Nativeを作る方法について話します。",
"accepted": true,
"speaker": {
"name": "ああうえ",
"kana": "アアウエ",
"twitter": "_kwzr_",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/6830315e-e375-4146-a5f2-5b2c82957643.jpg"
},
"created": "2022-05-22T14:07:56+09:00",
"timetable": {
"track": "Track D",
"starts_at": "2022-09-12T13:00:00+09:00",
"length_min": 40
},
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "日向強",
"kana": "ヒュウガツヨシ",
"twitter": "coffeegyunyu",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0c8845ab-4898-48ce-86c6-38b0a2129d34.jpg"
},
"created": "2022-05-22T18:46:09+09:00",
"timetable": {
"track": "Track D",
"starts_at": "2022-09-10T18:45:00+09:00",
"length_min": 20
},
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "shiz",
"kana": "しず",
"twitter": "stzn3",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/f774feb6-6744-4bad-93f5-7c3fe516058b.jpg"
},
"created": "2022-05-23T07:13:58+09:00",
"timetable": {
"track": "Track B",
"starts_at": "2022-09-11T11:05:00+09:00",
"length_min": 40
},
"feedback": {
"open": false
}
},
{
"uuid": "1071de26-846c-4efc-9775-30a271e68698",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/1071de26-846c-4efc-9775-30a271e68698",
"title": "RealityKitでMetalを書いてカスタムシェーダーをレンダリングしよう!",
"abstract": "RealityKitはWWDC2019で発表されたARのレンダリングフレームワークです。年々機能も改善されています。\r\n今回は、そのRealityKitでMetalを書いてカスタムシェーダーをレンダリングしてみようと思います。\r\nカスタムシェーダーを書けるようになればRealityKitでできる表現の幅が広くなると思います。\r\n\r\nサンプルとして顔認識を行い、顔の表面にカスタムシェーダーをかけるアプリをつくりました。\r\nこのアプリのソースコードを使いながらRealityKitとMetalの連携の仕方、カスタムシェーダーの書き方を紹介できればと思います。\r\n\r\n内容:\r\nRealityKitとMetalを連携する大まかな流れ\r\nMetal側のコード\r\nSwift側のコード\r\nAppleのカスタムシェーダーのドキュメント紹介\r\n\r\nこのLTを聞いて少しでもRealityKitに興味を持っていただければ嬉しいです。",
"accepted": false,
"speaker": {
"name": "sui",
"kana": "スイ",
"twitter": "katopan0405",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/f82c29da-0b7d-4ef7-874f-264003bd4c74.jpg"
},
"created": "2022-05-23T21:57:20+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "1464f505-1af5-439b-9ed4-b605fcf6dc55",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/1464f505-1af5-439b-9ed4-b605fcf6dc55",
"title": "iOSではじめるWebAR 2022",
"abstract": "iOSDC Japan 2019、2020と続けて発表している『iOSではじめるWebAR』の最新版です!\r\n\r\nそんなに毎年目新しい発表はあるの?と思われる方がいるかもしれませんが、例えばひとつ大きなトピックを挙げるなら『iOS 15.4でWebXR Device APIに“限定的に”対応』しました!さてそれでどうなったのか?それからどうなったのか?\r\n\r\nこの1年間の関連するアップデートを振り返りつつ、SafariにおけるWebARの動向をお伝えします。\r\n具体的には次のようなトピックスを想定しています。\r\n\r\n* iOS 15.4で限定的に対応したWebXR Device APIのその後\r\n* iOS 15で追加された実験的要素<model>の実態\r\n* iOSにおけるWebARコンテンツ開発の最新動向\r\n* iOSでも動くWebARを用いた最新事例",
"accepted": false,
"speaker": {
"name": "HEAVEN chan \/ ikkou",
"kana": "イッコウ",
"twitter": "ikkou",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/6a65f059-8be6-4a25-96fd-51841bbb8f28.jpg"
},
"created": "2022-05-24T15:36:34+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "922ece05-9a10-4e88-9c7f-f87312f9b550",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/922ece05-9a10-4e88-9c7f-f87312f9b550",
"title": "鉄道アプリを支えるテクノロジー",
"abstract": "東急株式会社・東急電鉄株式会社では東急東横線や田園都市線などの鉄道をより便利にお使いいただくために「東急線アプリ」を提供しています。\r\n\r\nこのLTでは\r\n\r\n- アプリと連携する駅、線路、車両などのハードウェアについて\r\n- アプリと連携する線路信号システム、運行情報システムの技術\r\n- アプリ上でリアルタイムデータ更新するためのアーキテクチャ\r\n\r\nなど\r\n普段知る機会の少ない鉄道のテクノロジーとiOSアプリでの活用についてご紹介します。\r\n",
"accepted": true,
"speaker": {
"name": "Hiroshi Shikata",
"kana": "シカタ ヒロシ",
"twitter": "dotrikun",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/89edc662-6e38-425d-8cc0-a9271df9dc01.png"
},
"created": "2022-05-25T16:45:49+09:00",
"timetable": {
"track": "Track A",
"starts_at": "2022-09-12T15:20:00+09:00",
"length_min": 5
},
"feedback": {
"open": false
}
},
{
"uuid": "f0c8ecfb-c419-4a59-8bb0-266d54e053ef",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/f0c8ecfb-c419-4a59-8bb0-266d54e053ef",
"title": "Notionを活用したユーザー行動ログと自動生成",
"abstract": "我々はプロダクトをより成長させるために、我々は常にユーザーの行動ログを元に検証し、仮説をたて次の改善に繋げています。\r\nですが、ユーザーの行動ログを実際に運用し始めるとログに関する仕様書が作成、更新されていなかったり、各職種とログに対する認識齟齬が発生したりと様々な問題が発生します。\r\n\r\n我々はこれらを解決すべく、普段ドキュメントやタスクの管理で使っているNotionを活用しログ仕様書の作成とコードの自動生成を実装し運用しています。今回はその実現方法と得られた恩恵についてお話します。\r\n\r\n1. 行動ログ管理の課題\r\n2. なぜログのドキュメント管理にNotionを選んだのか?\r\n3. Notion Databaseの設計\r\n4. SwiftPMで作るCLI Tool\r\n5. Notion APIとStencil\r\n6. ドキュメントの更新と自動生成フロー",
"accepted": false,
"speaker": {
"name": "satoshin21",
"kana": "サトシン",
"twitter": "satoshin21",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/968a32d4-5631-43c2-80d2-5292d8840992.jpg"
},
"created": "2022-05-26T12:19:18+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "リルオッサ",
"kana": "リルオッサ",
"twitter": "littleossa",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a249a303-5425-4507-a722-e28f77b6e1f1.jpg"
},
"created": "2022-05-27T18:16:46+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "b6a7f744-01a3-4ea1-a19d-72b01bf00b0d",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/b6a7f744-01a3-4ea1-a19d-72b01bf00b0d",
"title": "忙しいあなたへ!!新しくなったFirebase Apple SDKで何が良くなったのか5分でサクッと紹介します!",
"abstract": "【概要】\r\nGoogle I\/O 2022にてFirebaseの新機能が発表されましたがその中でもiOSのSDKが正式にSwift対応となりFirebase Apple SDK 9.0.0となって発表されました。\r\n今回は特にその中でもよく使用される認証機能のAuthenticationとデータ管理機能のFirestoreについて、何が良くなったのかサクッと5分でご紹介したいと思います。\r\n【目次】(予定)\r\n・Firebase Apple SDKの概要\r\n・Authenticationは以前と比べて何が良くなったのか\r\n ・async\/awaitに対応した実装例の紹介\r\n・Firestoreは以前と比べて何が良くなったのか \r\n ・async\/awaitに対応した実装例の紹介\r\n ・Codableに対応した実装例の紹介(ベータ版でなくなった話)\r\n・所感",
"accepted": false,
"speaker": {
"name": "oka yuji",
"kana": "oka yuji",
"twitter": "oka_yuuji",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/1e0654ee-e61c-427b-b216-0b90312055d6.jpg"
},
"created": "2022-05-27T22:36:51+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "くろるり",
"kana": "クロルリ",
"twitter": "kuroruri",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/d0c45480-d0b3-4440-ac41-ae8d6da461d0.jpg"
},
"created": "2022-05-27T23:22:43+09:00",
"timetable": {
"track": "Track B",
"starts_at": "2022-09-10T18:10:00+09:00",
"length_min": 20
},
"feedback": {
"open": false
}
},
{
"uuid": "8e5723ba-9c75-451a-a681-ac4e6030f25f",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/8e5723ba-9c75-451a-a681-ac4e6030f25f",
"title": "iBeacon ( BLE ) を扱う前に知っておきたいテストTips",
"abstract": "iBeaconと連携するアプリの機能実装は簡単そうに見えて、やってみたら意外と難しい、という経験がある人は何人かいらっしゃるでしょう。\r\nそうiBeaconを使った機能の実装は意外と難しいのです。\r\n開発環境ではきちんと動いたので安心していたのに、実際にビーコンを動作させる環境で動かしてみると期待通り動かない、なんてのはよくある話です。\r\nそうなる原因は電波環境の違いという見えない罠が存在することです。\r\nその罠に気がつくのが遅くなるほど、開発に致命的な影響が出て慌てふためくことでしょう。\r\n\r\n本LTでは後から慌てる状況にならないため、iBeaconを扱う機能を実装し始めるよりも前に知っておきたいテストのTipsをお話します。\r\n\r\n※iBeaconと言ってますがAndroid側でのBLE実装も視野に入れた一般的な話をする予定です",
"accepted": false,
"speaker": {
"name": "くろるり",
"kana": "クロルリ",
"twitter": "kuroruri",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/d0c45480-d0b3-4440-ac41-ae8d6da461d0.jpg"
},
"created": "2022-05-27T23:24:10+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "AkkeyLab",
"kana": "アッキーラボ",
"twitter": "AkkeyLab",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/34c44ff4-7d0f-4e23-b783-13538313cf72.jpg"
},
"created": "2022-05-28T03:21:12+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "AkkeyLab",
"kana": "アッキーラボ",
"twitter": "AkkeyLab",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/34c44ff4-7d0f-4e23-b783-13538313cf72.jpg"
},
"created": "2022-05-28T16:25:47+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "cb4cb4e4-c6bc-4c3d-9545-56e16d2b3950",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/cb4cb4e4-c6bc-4c3d-9545-56e16d2b3950",
"title": "SwiftUIにRealmを導入するとViewとModelだけでアプリが作れる話",
"abstract": "iOSアプリで使うデータベースとしては、RealmやCoreDataが有名です。\r\n特にRealmを使ったことがある方は多いのではないでしょうか。\r\n本トークではSwiftUIにRealmを導入して実装する上での知見をお伝えし、みなさんがこの構成でアプリを作るまでの第一歩をサポートします。\r\n\r\n昨年、RealmはアップデートでSwiftUIとの親和性が高くなりました。\r\nその結果、データ・バインディングを行うViewModelを開発者が実装しなくても、ViewとModelさえあればアプリを作ることができるようになっています。\r\nどのようなアップデートがされたのか、なぜViewModelに相当するものが不要なのかを解説します。\r\n新しくなったRealmを活用するととても便利なのですが、現状注意しなければならない問題もあるためその回避方法も合わせて説明します。",
"accepted": false,
"speaker": {
"name": "とむ",
"kana": "トム",
"twitter": "tomsan96",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/73ab36cb-e688-444e-8e2f-5cefda151193.jpg"
},
"created": "2022-05-28T18:33:02+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "90bb072d-a782-4242-8855-cc6d95da2fe0",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/90bb072d-a782-4242-8855-cc6d95da2fe0",
"title": "あなたの知らないCore Dataの世界",
"abstract": "複雑なユーザーデータを扱うには、アプリ内データベースを使うことは避けられません。\r\n皆さんはどんなデータベースをお使いでしょうか?\r\n\r\niOSで用意されているCore Dataは、OSのバージョンアップごとに、SwiftUIやDiffable Data Sourceを使う上でとても便利で強力な機能が追加されているなど、iOSアプリを開発する上でとても便利です。\r\nしかし、その一方であまりフィーチャーされてない機能、「これどうやって使うんだ」な説明不足な機能があるのも事実です。\r\n「何となく使いづらそう」「他のもので十分」な人も多いかと思います。\r\n\r\nそんなCore Dataに関して「こんなこともできますよ」な魅力に溢れた様々な機能を説明していくトークになります。\r\n「へー、こんなことができるんだ」や「使えそう」などとちょっとでも思っていただければ幸いです。",
"accepted": false,
"speaker": {
"name": "日向強",
"kana": "ヒュウガツヨシ",
"twitter": "coffeegyunyu",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0c8845ab-4898-48ce-86c6-38b0a2129d34.jpg"
},
"created": "2022-05-29T17:42:54+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "71cc743e-9e30-4a56-bdef-a9e178d0223e",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/71cc743e-9e30-4a56-bdef-a9e178d0223e",
"title": "1年間継続している自転車駆動開発のすべて",
"abstract": "人間にとって、健康は日々の生活においてとても重要です。\r\nエンジニアにとって、新しい技術のキャッチアップは日々の開発を行う上でとても重要です。\r\n\r\nいつも物事が長く続かなかった私が、健康と新しい技術のキャッチアップ、この両方のモチベーションを1年間保ち続けて得たことを紹介します。\r\n\r\n以下のテーマをお届けします。\r\n\r\n- 健康と技術、両方を数値化して定量的にモチベーションを維持\r\n- HealthKitを使ったワークアウト管理のカスタマイズ\r\n- HealthKitでSwift Concurrencyを学ぶきっかけ作り",
"accepted": false,
"speaker": {
"name": "tokizo",
"kana": "トキゾー",
"twitter": "tokizuoh",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/91e968da-aecb-4d6e-b149-58165a3ec864.jpg"
},
"created": "2022-05-29T20:04:27+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "アイカワ",
"kana": "アイカワ",
"twitter": "kalupas226",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/af92f5ac-c913-48db-9ecd-7d2db0b5ffda.jpg"
},
"created": "2022-05-30T18:22:00+09:00",
"timetable": {
"track": "Track D",
"starts_at": "2022-09-10T17:15:00+09:00",
"length_min": 40
},
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "栗山 徹",
"kana": "クリヤマ トオル",
"twitter": "kotetu",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/8c55895d-0a5f-4b18-a6e1-d1661fcb9569.jpg"
},
"created": "2022-05-30T18:25:33+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "freddi",
"kana": "フレディ",
"twitter": "___freddi___",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/b4794539-cc02-45e6-b08a-c75df3357f03.jpg"
},
"created": "2022-05-30T18:35:26+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "宇佐見 公輔",
"kana": "ウサミ コウスケ",
"twitter": "usamik26",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a2e3859e-b0bf-4863-8d9d-c24fe5329c6c.jpg"
},
"created": "2022-05-30T19:50:06+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "宇佐見 公輔",
"kana": "ウサミ コウスケ",
"twitter": "usamik26",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a2e3859e-b0bf-4863-8d9d-c24fe5329c6c.jpg"
},
"created": "2022-05-30T19:51:43+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "5a7bff68-05fb-4900-96f5-e02518c450af",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/5a7bff68-05fb-4900-96f5-e02518c450af",
"title": "HealthKit 気をつけるべき栄養素ランキング",
"abstract": "iOSにはHealthKitが備わっており、各種健康データや運動量などを入力しておくことができます。\r\n入力できる項目の中には栄養素の項目があり、摂取した食べ物などから栄養素を入力したりできます。\r\n中には特殊なもの、わかりにくいものなど、ソースコード上でどうやって入力すればいいか戸惑う栄養素もあります。\r\n\r\nそんな一癖も二癖もある栄養素の面々を、HealthKitのTIPSと共に、開発者にとって思わず「あるある」と思っちゃう独断と偏見のランキング形式でご紹介していきます。",
"accepted": false,
"speaker": {
"name": "日向強",
"kana": "ヒュウガツヨシ",
"twitter": "coffeegyunyu",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0c8845ab-4898-48ce-86c6-38b0a2129d34.jpg"
},
"created": "2022-05-30T20:06:12+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "多鹿豊",
"kana": "タジカユタカ",
"twitter": "yut_taj",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/de8c8bd1-071d-4202-8206-9abf3e03de2a.jpg"
},
"created": "2022-05-30T20:20:32+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "酒井文也",
"kana": "サカイフミヤ",
"twitter": "fumiyasac",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/1ead0d90-6aa1-42cc-b8cd-eae61b5ea168.jpg"
},
"created": "2022-05-30T20:31:45+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "315c617f-9c8b-4d9d-b4d7-0112ed0b6345",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/315c617f-9c8b-4d9d-b4d7-0112ed0b6345",
"title": "確実な動作を最優先したアプリ設計",
"abstract": "iOSのアプリ開発では、意識してコードを書いていないと、予想外のタイミングで不要なイベントが実行されてバグが起きてしまうことがよくあります。\r\n\r\n無秩序な非同期処理もそうですが、特にUI周りはプログラマがコントロールしきれるものでなく、予想外に起きるイベントを完全に無くすことはできません。\r\n\r\nアプリを安全・確実に動作させるためには、そのような不安定な外部要因に依存せず、アプリの状態を構築する事が必要です。\r\n\r\nこのトークでは、確実な動作をするアプリを作るにはどうすれば良いかを、以下のような内容でお話しする予定です。\r\n\r\n・iOSのUIの問題点\r\n・画面遷移の方法について\r\n・UIに依存せずにアプリの状態を持つ\r\n・「機能」と「生存期間の管理」を分けてオブジェクトツリーを構築する\r\n・循環参照を起こさない構造にする\r\n・非同期関数を隠蔽する",
"accepted": false,
"speaker": {
"name": "八十嶋祐樹",
"kana": "ヤソシマユウキ",
"twitter": "yaso_san",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/9cd24ccb-98a8-41cb-ad07-6a1a81966258.png"
},
"created": "2022-05-30T22:11:35+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "AkkeyLab",
"kana": "アッキーラボ",
"twitter": "AkkeyLab",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/34c44ff4-7d0f-4e23-b783-13538313cf72.jpg"
},
"created": "2022-05-30T23:24:08+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "417.72KI",
"kana": "シイナナツキ",
"twitter": "417_72ki",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/0668ee6a-114e-4dfa-a4a4-c2118b208c31.jpg"
},
"created": "2022-05-31T00:33:03+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "8397db3f-69d9-4af9-b701-2a23ef723d8f",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/8397db3f-69d9-4af9-b701-2a23ef723d8f",
"title": "SwiftUIの時代到来!UIKitは不要!なのだろうか…?",
"abstract": "今、iOSアプリの入門者には冬の時代が到来しています。\r\nAppleが自信満々に公開したSwiftUI。果たして、これを学べばiOSアプリエンジニアとして食っていけるのでしょうか?\r\n一方のUIKitは覚えることが沢山あります。AutoLayoutやUICollectionViewを覚えた頃にはUIKitなんて使われていないかもしれません。\r\nそんな不安を少しでも減らせるように、iOSアプリ開発歴12年の私がSwiftUIがどんな立ち位置のフレームワークなのか、UIKitとの使い分け・共存などを徹底分析します。\r\nこのセッションを見れば、SwiftUIの使い所や、開発におけるハマりどころを理解できることでしょう。\r\n\r\n参考)https:\/\/qiita.com\/noppefoxwolf\/items\/7940f5b8b132b825c545",
"accepted": false,
"speaker": {
"name": "noppe",
"kana": "ノッペ",
"twitter": "noppefoxwolf",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/4efbdf7a-368f-4ac8-bd23-1a61282bcaba.png"
},
"created": "2022-05-31T01:16:40+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "c45d5de6-4000-48da-b8d2-b98222460ba9",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/c45d5de6-4000-48da-b8d2-b98222460ba9",
"title": "ホーム画面を無効化しアプリの切替えを抑止する技術",
"abstract": "iOS端末を業務利用する場面では、ときおり「開発するアプリ以外を使わせたくない」「ホーム画面に遷移させたくない」という要望に出くわすことがあります。例えば、キオスク端末としてiPadを使うような場合です。\r\n\r\n本トークでは、そうした要望を満たすiOSの仕組みを3つ紹介します。\r\n\r\n- Guided Access\r\n- Single App Mode\r\n- Autonomous Single App Mode (ASAM)\r\n\r\nそれぞれの前提条件やメリット・デメリット、設定方法や使いどころを比較しながら解説します。3つ目のASAMは、アプリ内から Single App Mode のON\/OFFを制御できる興味深いモードで、その実装方法についても紹介します。",
"accepted": true,
"speaker": {
"name": "oishi",
"kana": "オオイシ",
"twitter": "oishi",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/adde1651-ac8a-4575-a958-ef882658af8d.png"
},
"created": "2022-05-31T11:05:11+09:00",
"timetable": {
"track": "Track E",
"starts_at": "2022-09-12T10:15:00+09:00",
"length_min": 20
},
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "岸川克己",
"kana": "キシカワカツミ",
"twitter": "k_katsumi",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/45e5a383-abb8-4424-9c7f-186eb802a1d2.jpg"
},
"created": "2022-05-31T11:41:00+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "shimastripe",
"kana": "シマストライプ",
"twitter": "shimastriper",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/317a9359-3457-45f3-9fa4-452e1a7f7feb.jpg"
},
"created": "2022-05-31T11:53:45+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "c5f5db2c-b8a8-4bf4-8088-262fa38c9ce8",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/c5f5db2c-b8a8-4bf4-8088-262fa38c9ce8",
"title": "SF Symbolsの無限の可能性に迫る、SF Symbolsアートの世界",
"abstract": "SF Symbols 3.3の時点では、3,300を超えるシンボルを備えています。この多種多様なシンボルのおかげで開発者は0からアイコンを作る必要は無く、開発に専念することが出来ます。\r\n\r\nでも、どうでしょう?\r\n\r\n3,300を超えるシンボルがあるのに、何個のシンボルを使ったことがありますか?実際、日の目を見れていないシンボルたちが沢山あります。\r\n\r\n「これ一体いつ使うんだ?」「こんなシンボルまであるんだ!」「これは使えそう!」\r\n\r\n個性豊かなシンボルたちが使って欲しそうにこちらを見ています。\r\n\r\nこのLTでは、そんなシンボルたちを活用したSF Symbolsアートの数々を紹介します。少しでもSF Symbolsのことが好きになっていただければ嬉しいです。\r\n\r\n(参考: https:\/\/twitter.com\/littleossa\/status\/1516540893142347778)",
"accepted": true,
"speaker": {
"name": "リルオッサ",
"kana": "リルオッサ",
"twitter": "littleossa",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a249a303-5425-4507-a722-e28f77b6e1f1.jpg"
},
"created": "2022-05-31T15:11:38+09:00",
"timetable": {
"track": "Track A",
"starts_at": "2022-09-11T15:20:00+09:00",
"length_min": 5
},
"feedback": {
"open": false
}
},
{
"uuid": "9a271de4-f22a-4d61-abce-4d0047420f92",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/9a271de4-f22a-4d61-abce-4d0047420f92",
"title": "依存問題・ルーティング問題をneedleを使って解決する話",
"abstract": "DIのOSSであるneedleを使い、マルチモジュール構成におけるモジュール間の依存問題・画面遷移問題に対応した話をします。\r\n依存過多になりがちなSingleton Managerクラスからの依存脱却を行いつつ、導線ごとに必要なインスタンスのスコープを切れるneedleの特徴を活かした画面遷移時の依存解決のお話をしたいと思います。",
"accepted": false,
"speaker": {
"name": "かむい",
"kana": "カムイ",
"twitter": "kamui_project",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/5433691c-c49b-4f33-a901-ef84891ae9bf.png"
},
"created": "2022-05-31T16:50:03+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "81ce55c9-93ba-4b3f-b011-2b88ec7f9de2",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/81ce55c9-93ba-4b3f-b011-2b88ec7f9de2",
"title": "マルチモジュール化に必要なことをApp Extensions対応から考えてみる話",
"abstract": "元来、アプリ開発においてマルチモジュール化をしなければアプリをリリース出来ないわけではありません。\r\n既に大きくなったプロダクトを途中からマルチモジュール化するためには、必要な処理を切り出すリファクタリングや影響範囲の考慮したインクリメンタルな対応が発生します。\r\nしかし半強制的にアプリから必要な処理を切り出さなければ機能自体が実現できないケースがあります。\r\n\r\nApp Extensions対応を行なった際に切り出した必要な処理を紹介し、どのような構成を取ればモジュール化構想をより円滑にできるのかを考察していきます。",
"accepted": false,
"speaker": {
"name": "かむい",
"kana": "カムイ",
"twitter": "kamui_project",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/5433691c-c49b-4f33-a901-ef84891ae9bf.png"
},
"created": "2022-05-31T17:08:54+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "cc685572-46e9-483a-83b2-a1c839662dec",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/cc685572-46e9-483a-83b2-a1c839662dec",
"title": "iPadOSDC Japan 2022",
"abstract": "「お前も Swift Playgrounds を使った開発者にならないか?」\r\n「見れば解るお前の強さ。Xcode だな?」\r\n「その闘気。練り上げられている。熟練の開発者に近い」\r\n「やはり Swift Playgrounds を使った開発者になれ!俺と iPad で開発を続けよう」\r\n\r\n\r\nSwift Playgrounds では、昨年末から iPad 上でアプリを開発してリリースできるようになりました。\r\n本セッションではそんな「ならない」と感じている人たちのために、Swift Playgrounds を使った iPad での開発を紹介します。\r\n\r\n\r\n「死ぬ…!!死んでしまうぞ Swift Playgrounds を使った開発者になれ!!なると言え!!」",
"accepted": true,
"speaker": {
"name": "Hiromu Tsuruta",
"kana": "ヒロム ツルタ",
"twitter": "hcrane14",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/7f77375e-4ae8-44bd-aa84-e57f1d95d7b0.jpg"
},
"created": "2022-05-31T17:53:16+09:00",
"timetable": {
"track": "Track A",
"starts_at": "2022-09-12T16:25:00+09:00",
"length_min": 5
},
"feedback": {
"open": false
}
},
{
"uuid": "7350d069-7a96-4bbd-8322-474d41a25270",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/7350d069-7a96-4bbd-8322-474d41a25270",
"title": "SwiftでのErrorの使い方、",
"abstract": "Swiftでのエラーハンドリングの方法を考えてみました。\r\n下記にAppleのErrorのクラスがありますが、これをよしなに使いエラーを便利にしてみたらどうでしょうと考えてみました。\r\nhttps:\/\/developer.apple.com\/documentation\/swift\/error\r\n\r\n少し検索してみますと、様々な記事を見かけましたが私なりの方法を検討してみました。",
"accepted": false,
"speaker": {
"name": "keisukeYamagishi",
"kana": "ヤマギシケイスケ",
"twitter": "shichimi_0_o",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/7acfa78f-fcf1-4485-b53e-45bb766f9160.jpg"
},
"created": "2022-05-31T21:17:49+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "かっくん",
"kana": "カックン",
"twitter": "fromkk",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/67aad253-9c62-41f9-83c4-96a3440b16f5.jpg"
},
"created": "2022-05-31T21:25:10+09:00",
"timetable": {
"track": "Track A",
"starts_at": "2022-09-10T16:40:00+09:00",
"length_min": 20
},
"feedback": {
"open": false
}
},
{
"uuid": "c62aa0a7-a753-4308-a9db-0535be077f6b",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/c62aa0a7-a753-4308-a9db-0535be077f6b",
"title": "アプリ運営に必要な機能をFirebaseで実現する",
"abstract": "アプリを運営するには普段目にする機能以外にも様々な機能が必要です。\r\n例えばメンテナンス中の画面などがわかりやすいと思います。\r\nnote のiOS \/ Android アプリには Firebase を活用して、これらの機能を実現しています。\r\nこのセッションでは Firebase の機能である Remote Config や AB Testing などを活用して、アプリを運営していく上で必要な機能とその開発方法を紹介します。",
"accepted": false,
"speaker": {
"name": "かっくん",
"kana": "カックン",
"twitter": "fromkk",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/67aad253-9c62-41f9-83c4-96a3440b16f5.jpg"
},
"created": "2022-05-31T21:26:07+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "c7634863-fc4e-42ea-8756-e2b417255e75",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/c7634863-fc4e-42ea-8756-e2b417255e75",
"title": "アプリを成長させるアプリの開発以外の開発",
"abstract": "私は2020年5月に note 社に入社し、現在丸2年が経過しました。\r\n入社してからの大半はアプリの開発業務がメインでしたが、ここ1年ぐらいは開発以外のタスクも増えてきました。\r\n具体的には自動化の整備、E2E テストの整備、分析用のツール開発、スクラムの運営などです。\r\nこれらについても Zapier や GAS などを活用してツール化をするなどして、今後の自分たちが楽できるようにしています。\r\nこのセッションではこれらのツールを作った経緯や方法について紹介します。",
"accepted": false,
"speaker": {
"name": "かっくん",
"kana": "カックン",
"twitter": "fromkk",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/67aad253-9c62-41f9-83c4-96a3440b16f5.jpg"
},
"created": "2022-05-31T21:27:03+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "79912d32-ce1f-4955-9cd4-2fd4a228942b",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/79912d32-ce1f-4955-9cd4-2fd4a228942b",
"title": "リニューアルと気持ちの整理",
"abstract": "エンジニアは意外にも信心深いところがある。サーバーをお祓いしたり、デバッグ神社を建てたり、リリースするときにお祈りする。\r\nアプリを全面リニューアルがあったので、今までのソースコードへの感謝の気持ちを込めてお焚き上げをすることにした。\r\nお焚き上げの準備から実施するまでを紹介します。\r\n\r\nブログに書いた内容をTL用に作り直して発表する予定です。\r\nhttps:\/\/akuraru.hatenadiary.jp\/entry\/2022\/05\/22\/200917",
"accepted": false,
"speaker": {
"name": "akuraru",
"kana": "アクラル",
"twitter": "akuraru",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/d5703555-ff3e-45d2-b06c-ce52d0b7d583.jpeg"
},
"created": "2022-05-31T22:29:12+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "6540041a-85c9-4dd1-82a6-e0ba3ab8b04d",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/6540041a-85c9-4dd1-82a6-e0ba3ab8b04d",
"title": "Xcodeのイベントを別アプリで監視するのに試行錯誤した話",
"abstract": "XcodeのBehaviorsという便利機能を皆様はご存知でしょうか?\r\nBuild PhaseのRun Scriptではターゲットのビルド時に特定の処理を挟み込むことができますが、Behaviorsはプロジェクト単位ではなくXcode全般でのイベントに処理を挟み込むことができます。\r\nそんなBehaviorsをハックして、ビルドやテストのイベントを別アプリから監視することができる仕組みを実現する方法について紹介します。\r\n\r\n見どころ\r\n・複雑なplistの任意の箇所だけ書き換える方法\r\n・App Sandboxの壁をどのようにして超えるのか\r\n・アプリを跨ぐ開発でのデバッグ手段",
"accepted": false,
"speaker": {
"name": "Kyome",
"kana": "キョメ",
"twitter": "Kyomesuke",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/e5fb6abc-b0cf-4957-8fbe-6afec71f7132.png"
},
"created": "2022-06-01T01:48:13+09:00",
"feedback": {
"open": false
}
},
{
"uuid": "8d132cde-8e1b-4fd0-b367-9a109d5556a6",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/8d132cde-8e1b-4fd0-b367-9a109d5556a6",
"title": "7年間運用している主力iOSアプリをリファクタリングしたお話",
"abstract": "エムスリーでは医療従者や一般の方向けに複数のアプリ開発を行なっていますが、その中でも主力である『m3.com』アプリで行ったリファクタリングについてお話します。\r\n\r\nプロジェクト開始から7年を経て FatViewController や責務が不明瞭なヘルパークラスが絡み合う状態となり、機能追加\/不具合修正\/オンボーディングのいずれも大変という辛い状況になっていました。\r\n\r\nこの状況を打開すべく「MVVM + Flux アーキテクチャへ変更」「マルチモジュール化」「DI導入」を行い、さらに Swift Concurrency、Combine、 XcodeGen などを活用し、「モダン」で「保守・運用がしやすい形」へと変貌を遂げました。\r\n\r\nこのトークでは「リファクタリングで実現した設計」に加え「リファクタリングに至る決断」「どのようにリファクタリングを進めたか」についてお話します。",
"accepted": false,
"speaker": {
"name": "tmnet357",
"kana": "ティーエムネットサンゴーナナ",
"twitter": "tmnet357",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/ff7156d4-5513-4675-8a5e-d2f2e61e9fea.jpg"
},
"created": "2022-06-01T09:38:18+09:00",
"feedback": {
"open": false
}
},
{
"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,
"speaker": {
"name": "吉田悠一",
"kana": "ヨシダユウイチ",
"twitter": "sonson_twit",
"avatar_url": "https:\/\/fortee.jp\/files\/iosdc-japan-2022\/speaker\/a337a3b4-965f-4684-8898-b443f749d68f.png"
},
"created": "2022-06-01T10:31:21+09:00",
"timetable": {
"track": "Track D",
"starts_at": "2022-09-10T18:10:00+09:00",
"length_min": 20
},
"feedback": {
"open": false
}
},
{
"uuid": "b530729b-ca41-490e-9c16-52058eb6f1bf",
"url": "https:\/\/fortee.jp\/iosdc-japan-2022\/proposal\/b530729b-ca41-490e-9c16-52058eb6f1bf",
"title": "既存のiOSアプリにKMMを導入してみた",
"abstract": "株式会社KyashではデジタルウォレットアプリKyashを提供しています。\r\n\r\n最近、KMM(Kotlin Multiplatform Mobile)を導入しました。\r\n既存プロダクトにKMMを導入して得た知見を共有したいと思います。導入を検討している方の参考になれば幸いです。\r\n\r\n・なぜ導入したか\r\n・導入してみてわかったメリット・デメリット\r\n・ぶっちゃけ、導入してみて良かった?",