開発者の皆さん、リーダーやマネージャーに対しての進捗報告、相談に困ったりしていませんか?説明が長くなってしまったり、細かい部分を突っ込まれたり、最悪なケースではちゃんと進捗出してるのに評価してもらえない事もありますよね?
ここでは、(クセのある)開発者と長年仕事をしてきたプロジェクトマネージャーが経験に基づいて、チームで仕事をする際に必要な以下のポイントをお伝えします!
・うまくいかないケースとは?
・チケットの立て方
・チケットの回し方(ステータスや担当者の変え方など)
・進捗状況の可視化のポイント
皆さんはGDPRという単語を聞いたことがありますか?はい、ヨーロッパの個人情報に関する法律ですね。ここで審査ガイドラインを見てみましょう。
the European Union's General Data Protection Regulation ("GDPR") or similar statute
そう、GDPRのような法律はGDPRだけではないのです。GDPRさえ、ヨーロッパさえチェックしておけばいいなんてことはありません。個人情報保護規定はどの国にもあるのです。
本LTでは、保護規程といえばまずはGDPR!な皆様と一緒に他国における類似の規定について学びます。
話すこと
話さないこと
大規模なアプリを複数人で安定して開発するためには、アプリの設計や実装をある程度統一させることが望ましいです。特定のアーキテクチャの導入もその手段の一つでしょう。
アーキテクチャに沿ったボイラープレートコードを適用することで、実装に統一性をもたせることができます。
タクシーアプリ「GO」の iOS プロジェクトにも様々なボイラープレートコードが存在します。
開発を進めていく中で、ボイラープレートコードの一部の命名を変更する必要が出てきたり、部分的に新たなボイラープレートの追加・削除が発生することがありました。
これらの作業は難しくはありませんが、ボイラープレートコードの量が多いとその手間は無視することができません。単純な作業であれ、開発効率を下げる要因の一つとなり得ます。
この課題をどのように解消し、ボイラープレートコードとうまく付き合えるようになったのかを具体例を交えて紹介します。
iOS 15から、即時通知と呼ばれる新しい通知が導入されました。これは、一定時間内に必ず確認してほしい情報を知らせる際に利用するもので、同じくiOS 15から導入された通知要約や集中モードを突破してユーザーの目に届く強力なものです。便利な反面、乱用するとユーザーに機能そのものをオフにされてしまう可能性があるため、使い所は精査する必要があります。
また、一度プロダクトに導入すると、その便利さ故つい使用箇所を増やしたくなってしまう可能性が高いですが、無論そういうわけにはいきません。安易に強力な通知配信を増やさないためには、開発メンバーの中で同じインプットが必要です。
本セッションでは、一iOSユーザーとして即時通知を受け取ってきて再考する即時通知の使いどころ、実際にプロダクトに即時通知を導入してみて見えてきた、即時通知利用に関して開発メンバーでもつべき共通認識について導入事例と共にお話します。
皆さんはresultBuilderを使った事があるでしょうか。
Swift5.4で導入されたこの技術はConcurrencyの発表で少し影が薄くなりましたが、実は複雑な処理をシンプルかつ宣言的なものに置き換えられるとても便利な技術です。
実際、私たちのチームではこれを用いることで、メンテコストの高い実装部分を大幅に改良する事が出来ました。
本トークではresultBuilderとは何なのか、またどういう効果的な利用法があるのかを実際の導入事例を交えてご紹介致します。
21分後にはあなたも1人前のresultBuilder!
コンテンツ
・resultBuilderとは
・仕組みと実装方法
・プロダクション導入の実例やライブラリの紹介
・高度な活用方法
聞き手の想定
・resultBuilderの存在を知らない方
・存在は知っているけど使い方がわからない方
・活用イメージが湧かない方
高速なアプリ体験の実現やアプリのプライバシー問題などから、オンデバイスで機械学習モデルを動かすことが増えてきています。
iOS上ではCore MLがよく利用されますが、PC上で動かす機械学習フレームワークよりも制約があり、出力が変わる問題が起こったり、
モデルを構築できてもアプリ組込み時に、扱いにくいモデルになっていることもよくあります。
このトークでは特に問題が起きやすい、画像を扱うモデルについて、
・使いやすく、運用しやすいモデルを構築する方法
・Core GraphicsやAccelerateを使ったテクニック
・MLエンジニアと協業方法
・モデルの入出力を高速に変換する方法
などを紹介し、"アプリエンジニア" として機械学習に関われるようになる知識を提供します。
GitHubにある学習済みモデルを自分でCore MLに変換して利用したい方にも役立ちます。
note に入社して2ヶ月、報告したバグ数は 20 件以上。そのうち自分で修正したバグは 15 件以上。作ったPR は40以上。
QA委員会やバグバッシュなどをやってきている note 社でさらに追加で20件以上みつけた手法や、1500 ファイル以上ある note プロジェクトから修正したいファイルを見つけていった手法についてはなします。
CarPlayを利用したことはありますでしょうか。
CarPlayはiPhoneがあるだけで登録した地点までのナビをする、好きな音楽を再生するなど、車をすぐに自分の空間にすることができます。
便利なCarPlayですが、ハードルが高く実際に触ってみたりアプリを作る機会は少ないのではないでしょうか。
ですが最近はiPhoneを繋いで動作するシミュレータや、安価なカーオーディオがあったりします。
またUIもTemplatesが用意されていたり試すのは意外と簡単だったりします。
本LTでは、CarPlayの開発に必要な知識を振り返りつつ、簡単なアプリを動かせたらと思います。
[ゴール]
・CarPlayに興味が湧いて触ってみようかな、という気になる
[アジェンダ](検討中)
・CarPlayとは
・開発するために・・
・シミュレータを触ってみよう
・簡単なアプリを作ってみよう
このトークを通して、ドット絵を描くアプリを作ってみましょう。
ドット絵は、イメージの最小単位であるピクセルを塗ることで描くことが出来ます。
CoreGraphicsの世界を通してピクセルを見ることで、普段意識しないイメージがどのようにしてメモリ内に格納されているかを知ることもできます。
また、CGContextを直接操作することでCGContextに存在しない描画APIの開発もしてみましょう!
このトークはドット絵エディタEditormodeの開発者がお送りします。
https://apple.co/3GJyqRF
iOS 15 has brought extension support to Safari. In this talk, I will explore the extension API by building a Safari extension that displays Furigana annotations in the browser. I will discuss:
老舗メーカー・パイオニアのiOSおじさんがFlutter初挑戦!
デザインスプリントにインスパイアされ、中途採用で入ってきたFlutterエンジニアにFlutterを教わり、5日間でFlutterアプリ開発に挑戦!
時代はFlutterなのか!?
はたしてiOSおじさんはFlutterおじさんにジョブチェンジできるのか!?
昨年、Swift Concurrencyが導入されました。当初はiOS 15のみでサポートされていましたが、Concurrencyのback deploymentが実現されたため、iOS 13以降であれば今すぐにでもConcurrencyを取り入れることができます。
しかし、実際にConcurencyを取り入れようとすると、参考となる情報はまだまだ少ないのではないでしょうか。Conccurency自体の情報は豊富でも、iOSアプリ開発での活用、特にactorや単体テストなどについてはほとんど語られていないように思います。
本トークでは、iOSアプリ開発におけるConcurrency活用の一つのベースラインとなることを目指して、async/awaitやTask、actor、MainActorなどを、アプリやテストのコードにどのように取り入れるか、具体例を用いて紹介します。
昨年のクリスマス、Swiftチームからプレゼントが贈られました。
なんとVSCodeでSwiftが公式にサポートされたのです。
VSCodeのパワフルな機能を使って、Swiftで実装していくことができます。
Swift Packageを利用してライブラリを導入したり、ビルドしたり。
コードを補完したり、定義へのジャンプもできます。
また、拡張機能のおかげで、GitHub Copilotを使えば、AIが代わりにコーディングしてくれたり、
swift-formatのおかげでSaveした瞬間にformatできるなど、快適なコーディング環境を実現できます。
このトークでは、お手元のVSCodeでSwiftを快適に利用するためのセットアップと、その使い心地についてお話しします。
みなさんは明日からVSCodeを使ってSwiftを楽しむことになります。
世の中には様々なアプリやシステムがありますが、良いアプリを開発できている会社はどこも良い開発環境を提供しているように思えます。
そこで考えてみましたが、本当に最高の開発現場とはどのようなものなのか?
開発効率の良い、最高の開発環境とは🤔
誰でも最大限のパフォーマンスを発揮できて、最高のものづくりを実現できる環境とは如何なるものなのかを考えてみました。
iOSのSwiftUI、AndroidのJetpack Compose、そしてマルチプラットフォームのFlutter…
モバイル開発は宣言的UIの時代に突入しました。
このセッションではこれら3つのフレームワークで同じUIを構築するサンプルを紹介します。
そこから見えてくる、全てのフレームワークに共通する重要な概念を明らかにします。
iOSのSwiftUI、AndroidのJetpack Compose、そしてマルチプラットフォームのFlutter…
モバイル開発は宣言的UIの時代に突入しました。
このセッションではこれら3つのフレームワークの特徴や考え方、具体的な実装方法を比較します。
他フレームワークの技術から得られる新しい発見、全てのフレームワークに共通する重要な概念を明らかにします。
Swift-DocCは、Swiftフレームワークとパッケージ用の文書作成ツールです。 現在はオープンソースとして公開され発展しています。
プロジェクトを説明する文書を作成する方法はいくつかあります。 そして最近ではgithubでReadMeをたくさん使っています。 プロジェクトに適切にコメントを作成したら、Swift-DocCでプロジェクトの説明文書を作成できます。
Appleの公式文書を見るのに慣れているapple platforms developerのために、私たちのプロジェクトの説明にもDocCを活用する方法について説明します。
実際のプロジェクトを説明するリンクを提供して、プロジェクトのoverViewを行います。
sample: https://github.com/M1zz/SampleSwiftUI
昨今話題のFlutter。
このセッションではそのFlutter内部を、UIKitやMetalといったiOS技術をベースに紐解きます。
「タッチイベントはどのように処理されてる?」
「どうやってレンダリングしてる?」
そこが分かればもう怖くない!
昨今話題のFlutter。
実はFlutter内部ではUIKitやMetalといったiOS技術が使われています。
このセッションではUIKitやMetalの解説と共に、Flutterの内部の仕組みを紐解きます。
「タッチイベントはどのように処理されてる?」
「どうやってレンダリングしてる?」
そこが分かればもう怖くない!
位置情報を利用するアプリケーションを開発したことのある方は、一度は位置情報のアクセス権限に苦しめられたことがあるのでは無いでしょうか。
またiOS 13からは 「1度だけ許可」という選択肢が追加され、アプリを利用する際のセッション毎にユーザーが位置情報サービスを許可するかどうか選べるようになったり、requestAlwaysAuthorization
を呼び出した場合の選択肢が「使用中のみ許可」「一時的に許可」「許可しない」に変更されたりと、位置情報のアクセス権限は更にとっつき難い存在となっています。
このセッションではiOS 13以降の複雑な位置情報アクセス権限の全貌の紹介および、iOS 15で導入されたCoreLocationUIを用いることで簡単に利用できるようになった位置情報取得について紹介します。