Metalは2014年のWWDCでGPUを扱うフレームワークとして登場しました。
直接使うことは多くないとはいえ、今や数多くのフレームワークを支えている重要なフレームワークです。
しかしなぜMetalという名前なのでしょうか?
私はその名前の由来にたどり着くことはできませんでした。
そういえばこの世界も見渡せば数多くのものが金属に支えられており、金属なしには現代文明は成り立ちません。
もしかすると様々なものの土台となる存在としてMetal(金属)と名付けられたのではないでしょうか?
私は日々そんなことを考えながらMetalを使ってプログラムを書いたり、砂鉄を集め炭で加熱し鉄を作ったりしています。
このLTでは我々に最も身近な金属である鉄と、フレームワークとしてのMetalの共通点を探ります。
何を言っているのかわからないと思いますが鉄の作り方を通して暑い夏をより熱く盛り上げます。
ファミコン、スーファミ、ゲームボーイ、64、GC、Wii、PS1、PS2のレトロゲームをiPhone/Macで遊ぶ話です。
Windowsと比べて、Macの情報がなく、令和では手に入りにくい物だったりで、無いものは作りました。
再び、昔懐かしいゲームを楽しみましょう!
当日のLT内容(予定)です。
・違法ダウンロードは絶対ダメ
・ 無いものは作ったゲームソフトの吸い出し機
・ ゲームコントローラーを認識させる
・ レトロゲームをプレイ!
iPhoneがスマートフォンと称されてはや数年。
巨大なタッチスクリーンを備えたiPhoneはその操作性でたくさんの人に受け入れられてきました。
でも、ちょっと待ってください。タッチしないと動かないって、いまいちスマートじゃなくないですか?
そんなわけで、iPhoneを触らずともアプリをなんとか動かすことができないか、様々な技術を駆使してアプリを動かせないかを検討してみます。
例えバッキバキに割れたiPhoneでも、見事動かしてみせましょう。
「WKWebViewではAPIがないから、JS挿入するか」
皆さんはこんな状況に遭遇したことはありませんか?
ご存知の通りWKWebViewはアプリでWebコンテンツを表示、操作が可能な便利なAPIです。
WKWebViewでは提供されていないコンテンツ操作をしたい場合でも、JavaScript(以下JS)を挿入することで可能になります。
しかしJSに頼った実装にはデメリットも。。
そんな中iOS14.5やWWDC21の発表で、コンテンツ操作のAPIが新たに加わりました。
本LTでは、そのAPI登場前の実装との比較を用いてその威力を紹介します。
【目次】(予定)
今年の6月、個人的に作り始めたSwift言語ガイド日本語版のリンクを公式サイトに掲載していただきました。
最初から目標としていた訳ではなく、ふとした思いつきから始め、途中で「せっかくだから何か目標が何かあった方が良い」と思い、後付けで目標を掲げたところ、多くの方のサポートや応援をいただき、今回1年越しに達成することができました。
何かやってみようと思ったけどやらず、「やっぱりやっておけば良かったかなあ!」と後悔すること、ありませんでしょうか?僕はいつもです。
そんな僕でも、なんだかんだ色々なことを始め、結果やって良かったと思えることがたくさんあります。今回は、僕が「よし、これやってみよう」と行動を始めるきっかけをどう作り、続けていくかをお伝えすることで、何かちょっと始めてみようかなと考えるきっかけになれば良いなと思っています。
※ 技術的な話はしません。ただただ僕の思いを伝えます。
SceneKit は3次元空間で物理シミュレーションなどの複雑なアニメーションを可能とする Framework です。ですから ARKit を利用したアプリやゲームアプリなどの開発を行わない開発者にとっては遠い存在にも感じるかもしれません。
しかし、紙吹雪アニメーションなど、一定のランダム性を必要とする場面では Core Animation にも限界が来てしまいます。そんなときに便利なのが SceneKit です!
・寄付アプリ「dim.」での実例紹介
・SwiftUI で SceneKit を利用
・SceneKit で iOSDC を表現(リアルタイム実装)
このトークでは、SceneKit の活用事例をご紹介するとともに、5分という制限時間内で SceneKit を用いた機能をリアルタイムで構築します。トーク終了後には SceneKit の虜になっていること間違いなしです!
HealthKitを使ったアプリの開発経験はありますか?
近年の健康志向の高まりからヘルスケア連携したiOS開発に関わる機会も増えていると思います。
このLTではHealthKitをはじめて扱う上で最低限抑えておきたい知識や、実際に利用したアプリを作った際に気づいたポイントについてご紹介します。
・HealthKitでできること
・扱えるデータの種類について
・データのプライバシーについて
・注意するポイント
「運動しなきゃなぁ」と思っている皆さん。自分でHealthKitを使ったアプリを作って運動不足解消しませんか?
iOSにおけるIn-App Purchase(アプリ内課金)はiOS 3から利用可能であり、その歴史は10年以上に及びます。
この長い歴史の中で、Ask to BuyやUpgrade / Downgrade、お試しオファーなどの多くの仕組みが追加され、やれることが格段に増えました。
アプリ内課金をサポートするための仕組みも、Store Kit 2による実装方法の変更やアプリ内での返金機能をはじめ、Server NotificationsやTransaction Receiptのフォーマットの変更など、新しいものが次々にリリースされたり、StoreKit Testingによって自動テストが出来たりSandbox環境がアップデートされたりなど、課金のテストにまつわる状況も大きく変わりました。
本トークでは、5分間でIn-App Purchaseの激動の歴史を爆速で振り返っていきます。
Xcodeの複数バージョンを使い分けようとしたらDockに同じアイコンが並んでどれがどうだかもうわからない!
_人人人人人人_
> もう嫌だ! <
 ̄Y^Y^Y^Y^Y ̄
アプリのアイコンを自由に変更できるmacOSの素晴らしい仕組みを使って、俺得なCLIツールをSwiftで開発しました。
しかもアイコンのテンプレートはみんな大好きSwiftUIで作れるようにしました。
2年連続で完全オンライン開催となっていたWWDCですが、今年は1日限定のスペシャルイベントがApple Parkで開催されることになりました。
本LTでは、そんなスペシャルイベントに奇跡的に当選した私が、新卒で海外未経験、初WWDCというフレッシュな目線に立ちながらWWDC22に現地参加したことで見られたもの、得られたものを(NDAに抵触しない範囲で)紹介します。
目次(予定)
・コロナ禍における海外渡航で必要だった社内手続き
・Developer Centerではどんな経験ができたのか
・基調講演ライブビューイング中の現地での様子
・Apple Parkで出会った人たちとコミュニケーションをとってわかったこと
・スペシャルイベントにはまだ続きが…? ”so much more…”の正体
・WWDC22が僕をどう変えたか
・プロダクトオーナー「こういう画面を実現したい!」
・エンジニア「できます。。。」
・エンジニア(心の声:HIGに違反しているんだよなー)
・エンジニア(心の声:これ全部満たすと実装コスト跳ね上がるんだよなー)
・エンジニア(心の声:保守性もさがるしなー)
・エンジニア(心の声:でも、言ってもしょうがないし、やるか)
これを実現したプロダクトは、プロダクトオーナーが望む結果は得られていますが、HIGや、実装コスト、保守性を考慮した仕様になっていません。
あるべきとしては、実現したい目的を共に理解し、その上で、HIG、実装難度、保守性を考慮した調整を行った上での実装仕様を、エンジニアの方と一緒に決めていきたいという話をしたいと思います。
皆さんはGDPRという単語を聞いたことがありますか?はい、ヨーロッパの個人情報に関する法律ですね。ここで審査ガイドラインを見てみましょう。
the European Union's General Data Protection Regulation ("GDPR") or similar statute
そう、GDPRのような法律はGDPRだけではないのです。GDPRさえ、ヨーロッパさえチェックしておけばいいなんてことはありません。個人情報保護規定はどの国にもあるのです。
本LTでは、保護規程といえばまずはGDPR!な皆様と一緒に他国における類似の規定について学びます。
話すこと
話さないこと
note に入社して2ヶ月、報告したバグ数は 20 件以上。そのうち自分で修正したバグは 15 件以上。作ったPR は40以上。
QA委員会やバグバッシュなどをやってきている note 社でさらに追加で20件以上みつけた手法や、1500 ファイル以上ある note プロジェクトから修正したいファイルを見つけていった手法についてはなします。
CarPlayを利用したことはありますでしょうか。
CarPlayはiPhoneがあるだけで登録した地点までのナビをする、好きな音楽を再生するなど、車をすぐに自分の空間にすることができます。
便利なCarPlayですが、ハードルが高く実際に触ってみたりアプリを作る機会は少ないのではないでしょうか。
ですが最近はiPhoneを繋いで動作するシミュレータや、安価なカーオーディオがあったりします。
またUIもTemplatesが用意されていたり試すのは意外と簡単だったりします。
本LTでは、CarPlayの開発に必要な知識を振り返りつつ、簡単なアプリを動かせたらと思います。
[ゴール]
・CarPlayに興味が湧いて触ってみようかな、という気になる
[アジェンダ](検討中)
・CarPlayとは
・開発するために・・
・シミュレータを触ってみよう
・簡単なアプリを作ってみよう
老舗メーカー・パイオニアのiOSおじさんがFlutter初挑戦!
デザインスプリントにインスパイアされ、中途採用で入ってきたFlutterエンジニアにFlutterを教わり、5日間でFlutterアプリ開発に挑戦!
時代はFlutterなのか!?
はたしてiOSおじさんはFlutterおじさんにジョブチェンジできるのか!?
昨年のクリスマス、Swiftチームからプレゼントが贈られました。
なんとVSCodeでSwiftが公式にサポートされたのです。
VSCodeのパワフルな機能を使って、Swiftで実装していくことができます。
Swift Packageを利用してライブラリを導入したり、ビルドしたり。
コードを補完したり、定義へのジャンプもできます。
また、拡張機能のおかげで、GitHub Copilotを使えば、AIが代わりにコーディングしてくれたり、
swift-formatのおかげでSaveした瞬間にformatできるなど、快適なコーディング環境を実現できます。
このトークでは、お手元のVSCodeでSwiftを快適に利用するためのセットアップと、その使い心地についてお話しします。
みなさんは明日からVSCodeを使ってSwiftを楽しむことになります。
位置情報を利用するアプリケーションを開発したことのある方は、一度は位置情報のアクセス権限に苦しめられたことがあるのでは無いでしょうか。
またiOS 13からは 「1度だけ許可」という選択肢が追加され、アプリを利用する際のセッション毎にユーザーが位置情報サービスを許可するかどうか選べるようになったり、requestAlwaysAuthorization
を呼び出した場合の選択肢が「使用中のみ許可」「一時的に許可」「許可しない」に変更されたりと、位置情報のアクセス権限は更にとっつき難い存在となっています。
このセッションではiOS 13以降の複雑な位置情報アクセス権限の全貌の紹介および、iOS 15で導入されたCoreLocationUIを用いることで簡単に利用できるようになった位置情報取得について紹介します。
新入社員の受け入れや新規端末購入の際に発生する面倒事として、UDIDの追加、証明書とProvisioning Profileの更新があります
fastlaneを利用すれば作業は簡素になりますが、UDIDは都度入力する必要があり、運用担当エンジニアが手動でCLIを叩きがちです
この面倒事から逃げるために、GitHub Actionsで提供されているmanual workflowsを活用し、誰でもUDIDの追加をできるようにしました
このLTを見て、あなたも今日からUDID登録作業から開放されましょう
「iOSやmacOSのアプリ開発に必要なエディタと言えば?」
この質問に「Xcode!」と即答しようとしたあなた! JetBrainsが提供する開発環境「AppCode」をぜひ一度試してみませんか?
強力な静的解析やリファクタリング機能、あまたのプラグインに外部ツールとのインテグレーションなどなど、Xcodeでは実現できない、便利機能が盛りだくさん!
さらにSwiftUIのプレビューもサードパーティツールを使ってシミュレーター上で利用可能!
本トークでご紹介する各種機能や設定を通じて、AppCodeの素晴らしさを知り、あなたもぜひ快適なアプリ開発体験を手に入れてください!
みなさんSiri Shortcutを使っていますか?
Siri Shortcutには標準でHTTPリクエストの送信や条件分岐といったステップが装備されており、外部サービスと組み合わせ日常の業務を改善することができます。
本トークではSlackの提供するWorkflowという機能と組み合わせ、私が実際に使用する業務効率化ショートカット(勤怠報告とお店データ報告)について解説します。
また「変数名が無い」「UIにクセがある」などのハマりポイント解説の他、条件分岐やファイル読み込みといった高度な機能の使い方もご紹介!
「Siri Shortcutを使ってみたいけどまだ始められていない」というな初心者でもきっとすぐに使ってみたくなること間違いなし
GASやIFTTTなど他のWebhookにも応用できますので、ぜひ本トークを聞いて明日からの業務改善に役立つショートカットを作ってみてください!