Swift 5.1からsome、Swift 5.6からanyという新しいキーワードが加わりました!
anyキーワードはSwift 6.0から明示的に付与しなければコンパイルエラーになります。 対応に迫られた時、よくもわからずanyをつけていくという状態では心許ないですよね、、、
本トークで、2つの切り口からsomeとanyの理解を深めていきましょう
汎用的なコード実装がより簡単に!
ジェネリクスは汎用的なAPIを作成する上で強力ですが、慣れていないと実装しづらいところがあります。それをsomeキーワードで実装した場合にどうなるか、実際のコードで比較しながら把握してみましょう
プロトコルの役割を明確に!
Swiftのプロトコルは型を抽象的にする役割と、制約を設ける役割の両方があります
それぞれの役割に応じてanyとsomeを使い分け、それによって得られるメリットをお伝えします
みなさん、DI(Dependency Injection, 依存性注入) をどのように行っていますか?
急速に変化していくiOSアプリ開発において、様々なDI手法が乱立しており、 "どのようなDI手法を選択するかベストなのか" と違和感を感じることがあるのではないでしょうか?
本LTでは、 私が現段階でDIのベストプラクティスだと考えている swift-dependencies を用いた DIからテストまで "具体例をもとに" 紹介し、DI手法の選択肢拡大に貢献したいと考えています。
swift-dependencies は TCAから派生して生まれたDIライブラリで、とても簡単に依存を登録し、柔軟な依存注入が可能です。
そのため、新規/既存のプロジェクトに対して導入が容易に行えます。
DI手法について再検討したい方 や TCAを用いた開発を考えている方 の支えになれば幸いです!
昨年公開されたSwift 5.7から、ついにprotocolにジェネリクスを使えるようになりました。
これにより、型消去のようなテクニックを用いることなく、associatedtypeを持つprotocolをより便利に・簡単に扱うことができます。
今回はこの新機能の活用方法を、実際にアプリをリアーキテクチャした実例とともにご紹介します。
iOSアプリ、Swift化してますか?ではCI/CDや業務効率化は?これらはfastlaneやGoogle Apps Scriptを使っており、iOSエンジニアには馴染みが薄いRubyやJavaScriptを使うことが多いでしょう。
「それ、Swiftで実装しませんか?」
メリットの一つはSwiftで読み書きできることです。アプリと同じ言語ならば、慣れない言語を使う頭の切り替えは不要で実装も捗ります。またWWDC22でも登場したVaporを使いより幅広い機能を実現することもできます。
本トークではヤプリで行っている業務効率化、Swift化の過程や既存ツールとの共存、Swift化のメリットを下記の実例と共にお伝えします。
①アプリ審査ステータス取得:Vaporを使い、GASでは難しい機能を実現
②リリース自動化:Swiftで実装しfastlaneから呼ぶことで、既存ツールとの共存を実現
最近、アクセシビリティという言葉をよく聞くようになりましたが、実際に導入、考慮をしているアプリはまだまだ少ない現状です。
身近なもので言うと、文字サイズの対応もアクセシビリティの一つです。
※この概要でのアクセシビリティとは、「身体の状態や能力の違いによらず様々な利用者がアプリやサービスを円滑に利用できること」と定義します。
アクセシビリティを考慮することによるメリットは多くあります。 (例) 利用できる人が増える...
今回のトークで話す内容
このトークの後には、明日から導入できるような話をしますので、アクセシビリティ考慮をしたいと思っている方の力になれたらなと思います!
FlutterエンジニアをやっていてSwiftにも挑戦してみたい! iOSエンジニアをやっていてFlutterに挑戦してみたい!ってことありませんか?
今回の登壇で話す内容
今回の登壇は、現役大学生が長期インターンなどの実際の現場で経験した話に基づいてお話しさせていただきます。
FlutterからiOSエンジニア、iOSからFlutterエンジニアに移行する際に、不安や障壁の解消をしたいと思います!!
Flutterを使っていて、UIの構築する際に、SwiftUIぽい書き方をしたいと思いませんか?
最近の海外でFlutterをSwiftUIぽい書き方をするのが流行っています。その導入方法からメリット・デメリットを解説していきたいと思います。
今回はSwiftUI経験者、FlutterでSwiftUIぽい書き方を導入してみたい人向けの内容です。
FlutterでSwiftUIぽい書き方をするメリット
このトークがSwiftUIの障壁、Flutterの障壁をなくすことができたら幸いです。
私たちのチームではSwift Concurrency対応やSwiftUIの導入に向けてFluxベースのアーキテクチャを脱却し、全面的なリアーキテクチャを進めています。
そんなチームである日突然リアーキ担当に任命された新卒2年目の私。
Swift Concurrencyヨクワカラナイ、大規模なプロジェクト初めての若手エンジニアがどのようにしてプロジェクトを推進したのか、その挑戦を5分で紹介します。
本トークでは若手がリーダーシップをとって大きなプロジェクトを推進する際の視点から、以下の内容に焦点を当ててお話しします。
アーキテクチャを使ってアプリを作る経験やテストを書いた経験がなく、どこか負い目を感じていました。
そんな僕がThe Composable Architecture(TCA)と出会い、学び、業務のアプリに導入したことで見える世界が変わりました。
TCA導入のビフォーアフターでどうコードの可読性が上がったか、どう迷いなくテストが書けるようになったかの感動をお伝えします。
界隈ではすでに多くの方々がTCAの良さを発信されていますが、ぜひ僕のようにアーキテクチャやテストについて何をどうやったらいいのかわからない方々に向けてお話ししたい内容です。
きっとあなたもTCAを触ってみたくなるはず!
初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
私の趣味は、個人開発とサッカー観戦です!
Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCである。これは2023年のWorldwide Developers Conferenceで2023年6月5日に発表され、米国では2024年初旬に購入可能になる予定です。
今回のApple Vision Proの発表は世界に影響を与えるものだと私は思います。値段が高すぎるなどの意見もあると思いますが、機能面で見るととても納得できるものがあります。
心理学系の大学院生の視点からみたApple Vision Proの発売による世界への影響を話していこうと思います!!!
初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCである。これは2023年のWorldwide Developers Conferenceで2023年6月5日に発表され、米国では2024年初旬に購入可能になる予定です。
Apple Vision Proの機能がAppleから公開され、一部には他にはない機能が発表されました。VRのコンテンツの構想のなかで今回のApple Vision Proはとても革新的だと思っています。
このプロポーザルでは、心理学部の大学院生の視点からみたApple Vision Proの将来性とVRの発展について話していこうと思います。
はじめまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、同時に心理学の大学院生でもあるいせりゅーと申します。私の趣味は、個人開発とサッカー観戦です!
「FlutterはiOSに勝てないのか:クロスプラットフォームとネイティブのパワーバランス」では、FlutterとiOSネイティブの競争力を比較し、それぞれの特性nなどを掘り下げます。パフォーマンス指標(CPU使用率、メモリ使用量、レンダリング速度)を用いて両者を評価し、iOSネイティブの全機能がFlutterでも実現可能か、その逆が成り立つか明らかにします!
また、iOS特有の機能(例:Face ID、ARKit)がFlutterでどのように扱われるか、開発体験の観点からも比較します。このプロポーザルを通じて、読者はFlutterとiOSネイティブのパワーバランスについて深い理解を得られるような話をします!
はじめまして!!!
株式会社ゆめみの2023年卒のFlutterエンジニアで、同時に心理学の大学院生でもあるいせりゅーと申します。私の趣味は、個人開発とサッカー観戦です!!!
Flutterエンジニアとして、我々は頻繁に「iOS固有の機能」を再現する問題に直面します。本プロポーザルでは、これら独特なiOSの機能とFlutterの能力のギャップを詳しく分析し、明らかにします。具体的には、フレームワークやユーザー体験といった、Flutterが完全には再現できない機能について深く検討します。また、この比較を通じて、Flutterがどのようにこれらの制約を克服または回避するためのさまざまな手段や戦略を探求します。
Flutterエンジニア視点だからこそわかるiOSにしかできないことをしっかりと話していこうと思います!!!
私は個人で「20xx年の恵方コンパス」というアプリを約5年間運用しています。
名前の通りその年の恵方を示してくれるアプリで、2023年2月3日にはApp Storeの無料アプリランキング総合2位を達成しました。
しかしそれから数日経った頃「恵方」と検索した時の順位が一番下まで下がっていることに気づき、AppleからApple Developer Programのライセンス違反を警告するメールまで届きました。
そこには「App Storeのランキングやユーザーレビュー、検索結果などを操作している」との旨が記載されています。
無論そのどれにも心当たりはなく、そしてこのペナルティとして検索順位が下げられたのだと察し、メールへの返信やAppleへの問い合わせを行いました。
結果として現在は検索順位が回復していますが、それまでの間にAppleとどのようなやり取りがあったのかを本トークにて紹介します。
オンボーディングでこのような課題に直面したことはありませんか?
私たちのチームではこれらの課題を解決するために、本番のプロジェクトに近いアーキテクチャと構成を持つチュートリアルプロジェクトを作成し、実際の開発に近いフローでのオンボーディングを行なっています。
また、新メンバー向け以外にも課金やCI/CDなどの難易度の高い知識のキャッチアップや新しく公開されたAPIのPlaygroundとしても活用しています。
本トークでは、技術のキャッチアップを促進するためのチュートリアルプロジェクトの具体的な活用方法を紹介します!
このトークが少しでも皆様のチームのオンボーディングの参考になれば幸いです。
業務でモダンなアプリ開発がしたい!それっぽいことがしたい!
でも製品への新機能を提案できるほど知識も経験も足りてない。おまけに当分はアプリ開発に割けるリソースもなさげ。。。
ならば社内勉強会を立ち上げて知識も経験も傘増ししてしまえ!とノリと勢いで始まった勉強会立ち上げ計画。
ひよっこエンジニアがアプリの勉強会を運営していく中で、
と、試行錯誤してきた取り組みをご紹介します。
リファクタリングやマルチモジュール化などを行う際に、そもそも現状どういう依存関係が存在するのかを把握してから議論する必要があると考えています。
本LTでは、依存関係をグラフなどで表す方法の検討過程と、実際にグラフ作成のために作成したツールの紹介とその活用についてお話しします。
「せっかく買ったiPadを活用できないまま放置している」、「SwiftUI触る機会がない」、「Macは持ってないけどiPadならある」、「iPadでプログラミング学習をしたい」
そんな方にオススメしたいのがiPadでアプリ開発です!
ついこの前まで私自身もiPadを活用できずに放置ぎみで、SwiftUIも書いたことがない状況でした。
このままiPadをろくに使わずに手放すのは悔しかったので、iPadだけでアイコン作成、スクリーンショット作成、アプリの開発・公開まで全てを完結させるチャレンジをしてみました。
使用したツールや難所の紹介、得られた学びをお伝えできたらと思っています。
これを見て是非皆さんにもチャレンジしてみていただきたいです。
iOS, Android両プラットフォームでアプリを長期間運用していると、OS間での画像や文言の差分、異なる名称でのリソース追加などによって細かな修正やコミュニケーションが必要なケースが多くあります。
このトークでは、これらの問題を解決する手法としてテキスト・カラー・画像のリソースをKotlin Multiplatform Mobileを利用し、iOSとAndroidのロジックを共通化することで、OS間でリソースを共有する方法について紹介します。
さらに、共通化するにあたっての技術選定~導入方法やそれぞれのOSから見たメリット・デメリットについてもお話しします。
本トークを通じてリソース管理の複雑さを軽減する手法の提案や、Kotlin Multiplatform Mobileを利用するメリットについてお伝えすることができれば幸いです。
現在、趣味として徳島大学生向けの学修サポートアプリを個人で開発・運用を行っている大学生です!
このアプリは、講義情報やレポート提出、そして学内情報などの一元化を目的としており、それにはJavaScriptインジェクション、Webスクレイピング、そしてRSSフィードを活用し、学生生活のほとんどが一つのアプリで完結するという形で実現しました。
現在、AppStoreで公開しており、徳島大学生の3人に1人が利用しています。
このLTではAPIが全盛の今、なぜこのアプリではJavaScriptインジェクション、Webスクレイピングといった技術を採用するに至ったのか、その背景や技術・運用について紹介しますので、エンターテイメントとしてお楽しみいただければ幸いです。
また、学生の皆さんに対して「不便だと感じたら、自分で変えてみよう」と少しでも思っていただければ嬉しいなと思います。