「swift-markdown」は、Apple自身が開発を進めているSwiftでMarkdownドキュメントのパース・編集を行うためのライブラリです。
swift-markdownは、Swift言語との親和性が高く、かつGithubで使用可能なMarkdown構文に準拠していることが特徴です。開発が開始されてまだ日が浅いものの、今後、iOSでMarkdownに関連したアプリを開発する上では有力な選択肢となることが期待されます。
本稿では、Markdown機能を組み込みたいとお考えの方へ向けて、他のMarkdown機能実装手法との比較を通じて、swift-markdownの特徴や利用シーンについてご紹介します。
また、簡単なMarkdown構文を題材に、SwiftUIを使用してMarkdown表示を行うことを目標に、サンプルコードを交えてアプリに組み込む方法についてもご紹介します。
DangerはCI/CD環境でコードレビューを機械的に実施してくれるツールで、Danger-Swiftはその名の通りDangerがSwiftで書かれたものです。
レビューの内容をDangerfile.swiftに記述していきますが、当然Swiftで書くことになります。
Swift Concurrencyが出た当初はtop-levelでのawait
がサポートされていませんでしたが、Swift 5.7から書けるようになりました。
つまり、Xcode 14になってからDangerfile.swiftでも正式にasync/awaitが扱えるようになったことになります。
本記事は昨年のパンフレット記事の続編として、Danger-Swift上でGitHub-APIを触るためにasync/awaitを導入する話を書きます。
ARKitは拡張現実の体験を作るためのFrameworkです.
ARKitは普段の業務で使う機会が少なく,学ぶことが退屈に感じるかもしれません.
しかし,ARKitは今後より身近で重要な存在になるかもしれません.
WWDC23においてVision Proと呼ばれる新しいデバイスが登場しました.
このデバイスはARデバイスの側面を持っており,そのデバイスが実行するアプリが実世界を認識しインタラクトできる事は非常に重要です.
そして,そのような体験を生み出すために必要となるのがARKitです.
もし,Vision Proで動作するアプリの開発を行う際にはARKitの知識や経験が活きてきます.
iOS上で動作するARアプリの開発について学びVision Proに備えましょう.
この原稿ではカメラを通して認識した世界に3Dオブジェクトを登場させ,インタラクトするアプリの作り方を説明します.
OpenAPI Specification活用してますか?HTTP APIのインターフェース定義で仕様の認識合わせにうってつけ。エコシステムも充実しています。
WWDC23ではSwift特化のGenerator、Swift OpenAPI Generatorが発表されました。Swift Package pluginとして提供されたことでコードの生成から利用を、Xcodeを離れることなくスムーズに行えます。
似たコードを何度も書かずに済むという利点の一方、自動生成ならではのコツも存在します。例えばドキュメント生成のためだけなら気にしなくてよかったspecの書き方があります。また現時点の自動生成は未熟な点もありこのGenerator独自の実装方法を知る必要もあります。
本記事ではそんなSwift OpenAPI Generatorの導入手順や活用のコツを実際のコードを交えてご紹介します。
Apple標準フレームワークでお馴染み「MapKit」ですが、
「ただ地図にピンを立てるだけ」ではなく様々な機能がいくつもあることを、みなさん知っていますか?
実はMapKitには毎年新機能が追加され、年々出来ることも増えて来ています!
など、MapKitを使い無料で実現できる様々なカスタマイズや機能を、
実際にプロダクトに導入した経験も踏まえてご紹介します!
アプリの機能開発時やUI実装時、あるいは基盤となり得る部分に手を入れたりする場合には、自前で準備をする選択肢の他にOSSを利用する選択肢も候補に含める場面も数多くあると思います。また、自前でいざ実装を考えていくとなると「結構大変そうに見えて2の足を踏んでしまう」という経験があるかもしれません。
本稿では、少し難しそうなイメージがある部分をDIYする際に、少しでもお役に立てそうなポイントやアプローチをご紹介できればと思います。
【現在考えているトピックス】
※内容は一部変更または調整する可能性があります。
等々...
アプリ開発で日付を表示する場面は多くあります。DateFormatterはDate型のデータを任意のフォーマットでString型に変換することができます。
しかし、DateFormatterはインスタンス生成コストが高く、アプリのパフォーマンスを低下させてしまうことがあります。
この問題を防ぐには、DateFormatterをキャッシュして不要な生成コストを抑えるのが効果的です。
本記事では、DateFormatterのキャッシュによるパフォーマンス改善案についてコードを元に解説します。その上で、パフォーマンスを比較し、キャッシュによる違いを整理します。併せて、iOS15から追加されたformattedを使った場合、前述の実装とどう異なるかを比較します。そして、パフォーマンスに悪影響を与えることなくアプリ内で日付を表示するには、どのような実装が最適であるかを提案します。
弊社「株式アンドパッド」では、「幸せを築く人を、幸せに。」をミッションに建設DXに取り組んでいます。
この超巨大な建設業界というドメインに対し、弊社では1つの巨大アプリ(スーパーアプリ)ではなく、複数のアプリを提供する「マルチアプリ戦略」という手段を用いて課題解決に取り組んできました。
現在「施工管理」「図面」など10個近くのiOSアプリを運用しています(Flutter製も含む)。
そこから見えてきたマルチアプリ戦略の良かったこと・課題に感じていること・うまく解決できたこと、などを記事にまとめます。具体的には、
などになります。
iOS開発の「詳細」というよりは、「アーキテクト」だとか「組織論」的な話も幾分含むことになります。
iOSの業界をネタにし尽くした、ネタ切れ、というか、もう正直このプロポーザルを書いてる時点でネタがない!打ち切り覚悟のfreddi先生最新作。ファットビューコントローラークリエイター・フレモンによるドタバタコメディ、第3弾です!今からネタ考えるのでもうここに書くこと無いんですよね、さて、今年はどういうネタにしようかな。TwitterでちょっとバズったMVVMタ◯ピーのオマージュを引っ張るのも考えたし、いっそウ◯ニャ路線で行くか、迷うな。あ、そうだ、あの人に聞いてみよう。今年よかったらマンガに登場しませんか?...
???「ええで」
乞うご期待!
Apple Silicon、皆さんはどれくらい使い倒していますか?
現代の令和においても、我々は CPU と非常に近い距離で対話する手段を持っています。それがアセンブリです。
アセンブリは機械語に非常に近い低水準言語であり、CPU アーキテクチャによって記述方法も異なります。Swift などの高水準言語では記述方法が言語のバージョンアップ以外で変わることは少ないため、この特性に疑問を持つ人もいるかもしれません。
本稿では、アセンブリを通じて Apple Silicon を操作する方法を紹介します。初めは仕事に直接活かせないように思えるかもしれませんが、Apple Silicon と近い距離で対話することは意義深いものです。きっと Apple Silicon がさらに魅力的に感じられるでしょう!