- 1. iPhoneアプリをiPad対応するノリでMac対応しよう【SwiftUI】
- 2. プライベートリポジトリのRelease AssetsにXCFrameworkをホストして、Swift Package Manager・CocoaPodsで配布する
- 3. SwiftUIを使って10日でSNSアプリをリリースしたので知見を公開してみる
- 4. バーチカルカレンダーはどうやって描画されているのか
- 5. 【SwiftUI】ウィジェットの周りのマージンをなくす(iOS17)
- 6. XcodeでArchiveができない時の対処法
- 7. ViewだけでWebView埋め込みiOSアプリを作る
- 8. iOS定期購読サーバ実装 verifyReceiptとApp Store Server APIの使い方
- 9. 【iOS】音楽アプリで使えるCarPlayのUIについて
- 10. Combine入門: Publisher, Subscriberについてまとめてみた
- 11. 【初心者向け】iPad だけで Google の AI モデル「Gemini」を使ったアプリを作ってみよう!
- 12. 【Flutter】flutter_mapで出来ることって?flutter_mapざっくり解説。
- 13. 【iOS】アプリ譲渡の手順
- 14. 【SwiftUI】ウィジェットを強制的に更新する
- 15. Gemini Pro APIをiOSで
- 16. SwiftUIでEnvironmentValuesを使ってカスタムActionをDIする
- 17. チームワークと効率向上のカギ!メルカリが成功する大人数iOS開発のための手法とは?
- 18. 【iOS】ライトニングトークイベントでAI関連の発表をした振り返り
- 19. PagerDutyのiOSアプリをインストールすると電話通知が来なくなった話
- 20. WKWebViewとネイティブのViewを同じスクロール領域でいい感じに表示したい
iPhoneアプリをiPad対応するノリでMac対応しよう【SwiftUI】
今回は「iPhone/iPadアプリを超低コストでMac対応する方法」と「その次のステップ」について話します。
## 前提
– アップデートを重ねて成熟したiPhone/iPadアプリがある
– SwiftUIを採用した一般的な構成のアプリ
– Macアプリ開発は未経験![iPhoneアプリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3564662/dd48daad-2e0c-1ad5-b587-5f64ddc994bc.png)
## 「iPhoneアプリをiPad対応するノリ」
iPhoneアプリは`Supported Destinations`に`iPad`を追加するだけでiPadで動作します。ただそのままだと「使い辛いiPadアプリ」になってしまいます。「使い辛くないiPadアプリ」にするためには(多くのケースにおいて)少量の改修で十分です。その少量の改修を実施した状態でApp StoreにリリースしているiPadアプリは沢山あります。それを「iPhoneアプリをiPad対応するノリ」と呼
プライベートリポジトリのRelease AssetsにXCFrameworkをホストして、Swift Package Manager・CocoaPodsで配布する
:::note info
この記事は [ZOZO Advent Calendar 2023](https://qiita.com/advent-calendar/2023/zozo) Vol.8の16日目の記事です。
:::こんにちは。株式会社ZOZO 計測プラットフォーム開発本部 計測アプリ部 iOSブロックの[@na9ain](https://twitter.com/na9ain)です。
本記事では、GitHubのプライベートリポジトリのRelease AssetsでXCFrameworkをホストして、Swift Package Manager・CocoaPodsで配布・利用する方法を紹介します。
# はじめに
XCFrameworkをサーバー上でホストする必要性が生じる典型的な例は、XCFrameworkに含まれるファイルのサイズが100MBを超えるときです。
分かりやすさのために、このリポジトリを例として挙げます。
https://github.com/thenagain/opencv-xcframework
このリポジトリではSwift Package Man
SwiftUIを使って10日でSNSアプリをリリースしたので知見を公開してみる
# はじめに :beginner:
DeNAでiOSエンジニアをしている[@tsuzuki817](https://twitter.com/tsuzuki817)です!本記事は [SwiftWednesday Advent Calendar 2023](https://qiita.com/advent-calendar/2023/swift-wednesday) の16日目の記事です🎅🎄
https://qiita.com/advent-calendar/2023/swift-wednesday
昨日は @treastrain(Ryoga Tanaka)さんの[【初心者向け】iPad だけで Google の AI モデル「Gemini」を使ったアプリを作ってみよう!](https://qiita.com/treastrain/items/6ed2802836969d308481)でした :tada:
Geminiを使ってみようと思える良記事でしたね:pray:
さて、今回は `SwiftUIを使って10日でSNSアプリをリリースしたので知見を公開してみる`という記事
バーチカルカレンダーはどうやって描画されているのか
これは[株式会社TimeTree Advent Calendar 2023](https://qiita.com/advent-calendar/2023/timetree)の16日目の記事です。
https://qiita.com/advent-calendar/2023/timetree
こんにちは。TimeTree の iOS エンジニア @Bax です。
TimeTree はプレミアム(有料プラン)でいくつかの機能を提供しています。その1つにバーチカルカレンダーがあります。こちらは私が過去に開発を担当していたもので、その開発のあれこれについて書きたいと思います。
# バーチカルカレンダーとは何か
月ごとに表示されるカレンダーを私たちはマンスリーカレンダーと呼んでいます。一方で、バーチカルカレンダーは時間軸で1日の予定を見ることができるカレンダーです。あまり馴染みのない言葉かもしれませんが、テレビ番組表のようなタイムテーブルに近いものです。
マンスリーカレンダー バーチカルカレンダー 【SwiftUI】ウィジェットの周りのマージンをなくす(iOS17)
# はじめに
iOS17からウィジェットの周りに余白が付くようになったみたいです。そんな邪魔な余白をなくすってのが今回の記事の目的です。
![Simulator Screenshot – iPhone 15 – 2023-12-15 at 22.29.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/b3dcce73-f729-4154-81d0-2423149ce700.png)
こんな感じ
# 実装
“`diff_swift
struct DemoWidgetExtension: Widget {
let kind: String = “DemoWidgetExtension”var body: some WidgetConfiguration {
IntentConfiguration(
kind: kind,
intent: DemoWidgetConfigurationIntentXcodeでArchiveができない時の対処法
色々なサイトで、xcodeの画面で、「iOS Generic Device」にしたら良いという記事を散見されます。
![スクリーンショット 2023-12-15 14.46.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3321245/717ec256-d6da-a8d9-e556-11336b74d1f4.png)
ただその項目自体が見つからず、詰まっていましたが、Xcodeが12から「Any iOS Device」を選んでくださいという記事を発見。
無事Archiveができる様になりました。
ViewだけでWebView埋め込みiOSアプリを作る
# はじめに
みなさんは「あ〜このWebサイト・アプリがモバイルアプリだったら便利なのにな〜」と思うことはありませんか?
私はあります…!!SafariからWebページをホームに追加しても、PWAに対応してないサイトはなんとなく不便、、、
そんなあなたに、WebView埋め込みのiOSアプリをサクッと作るお話を共有したいと思います!# 環境
– macOS Sonoma 14.2
– Xcode 15.1
– iOS 17.1.2
– Swift 5.x系# 作ったもの
– Safariに遷移することなく、Webページのコンテンツをアプリ自体に埋め込んだもの
– SwiftUIのViewの中で「WKWebView」を使って実装
– フッターに「戻る」ボタンと「進む」ボタンを実装# プロジェクトの作成
慣れているみなさまは読み飛ばしてください…!1. Xcodeで「Create New Project…」を選択
iOS定期購読サーバ実装 verifyReceiptとApp Store Server APIの使い方# はじめに
こんばんは
この記事は[and factory.inc Advent Calendar 2023](https://qiita.com/advent-calendar/2023/andfactory)の15日目の記事です。みなさん、iOSの課金処理で使用される[verifyReceipt](https://developer.apple.com/documentation/appstorereceipts/verifyreceipt)はご存知でしょうか?
もちろん知ってますよね。みんな大好きverifyReceiptは、iOSアプリから受け取ったレシートの購入情報をサーバ側で検証する為に使用されることで国民的な知名度があります。もしも、ある日突然verifyReceiptがDeprecatedになったらどうしますか?
大丈夫、そんな日はまず来ません。まさか俺たちのAppleがそんなことをするはずがありません。
でも備えあれば憂いなし、ということで今日はもしもに備えての妄想をしていきます。これは妄想の話ですが、verifyReceiptがDeprecatedにな
【iOS】音楽アプリで使えるCarPlayのUIについて
この記事は[レコチョク Advent Calendar 2023](https://qiita.com/advent-calendar/2023/recochoku)の15日目の記事となります。
## はじめに
こんにちは、後藤です。株式会社レコチョクでiOSアプリの開発をしています。
スキマスイッチの年末のライブを生きがいに今日この頃を過ごしています。この記事では、CarPlayのAudioアプリを設計する際に使用できるUIの一覧について紹介します。
## 検証環境
Xcode 15.1
## 使用できるテンプレート
CarPlayアプリのUIは、グリッドやリストなどのテンプレートを用いて作成します。
使用できるテンプレートは、CarPlayのアプリの種類を表すエンタイトルメントによって決定されます(Audioアプリなら`com.apple.developer.carplay-audio`)。
![CarPlayTemplateList.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/
Combine入門: Publisher, Subscriberについてまとめてみた
# はじめに
[フューチャーアドベントカレンダー2023](https://qiita.com/advent-calendar/2023/future)の15日目です。HealthCare Innovation Group(HIG)[^1]所属の橋本です。
今回は、iOSアプリ開発でリアクティブプログラミングを実現する方法の一つであるCombineフレームワークの基本的な使い方についてまとめていきます。具体的には、PublisherとSubscriberの定義について、公式ドキュメントを参照しながら、どのような処理をされているか確認していきます。この記事を読めば、WWDC2019で発表されたCombineフレームワークの基本的な知識を身につけることができるかなと思います。この記事と私が参照した公式ドキュメントも一緒に見ていただけると幸いです。
# 目次
– Swiftを用いたiOSアプリ開発におけるリアクティブプログラミングの現状
– Appleが提供するCombine Frameworkとは
– Publisherの役割と使い方
– subject
– P【初心者向け】iPad だけで Google の AI モデル「Gemini」を使ったアプリを作ってみよう!
_この記事は [SwiftWednesday Advent Calendar 2023](https://qiita.com/advent-calendar/2023/swift-wednesday) の15日目の記事です。_
https://qiita.com/advent-calendar/2023/swift-wednesday
—–
Gemini など、Google の生成系 AI モデルを使ったアプリを、iPad だけで作ってみましょう!
![Screenshot 2023-12-15 at 2.46.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90125/4136aea6-5e91-d62a-c444-cf9ba24a47d9.png)
# 環境
ここでは iPadOS 17.2 以降を搭載し、Swift Playgrounds 4.4.1 以降が使える iPad を用いてアプリを作ります。うまく動かない場合は iPadOS のアップデートや Swift Playg【Flutter】flutter_mapで出来ることって?flutter_mapざっくり解説。
[DeNA 24新卒 Advent Calendar 2023 ](https://qiita.com/advent-calendar/2023/dena-24-newgrad)の 15日目の記事です。
この記事では、Flutterのマップパッケージである、[flutter_map](https://pub.dev/packages/flutter_map)について、さらっと紹介します。
https://pub.dev/packages/flutter_map
flutter_mapは高頻度でアップデートが行われ、使い方などもバージョンによって結構変わってしまいます。
この記事ではflutter_mapのバージョンは6.1.0ですので、「あれ?コード通り実装したのに、そんな関数ないって言われる!」みたいにならないよう、ご注意ください![flutter_map Docs](https://docs.fleaflet.dev/)
https://docs.fleaflet.dev/
## 目次
– [環境](#環境)
– [事前準備](#事前準備)
– [【iOS】アプリ譲渡の手順
# はじめに
法人アカウントから個人アカウントへアプリを譲渡する際にやったことをまとめました。# AppStoreConnectでの譲渡
### 譲渡側の手順
① 法人アカウントでログインをしている事を確認します。
② 譲渡したいアプリを選択します。
![スクリーンショット 2023-11-17 13.28.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/7ebc8b0d-33ff-7dd4-64ec-e178ce672251.png)③ 「アプリ情報」の項目を選択します。
![スクリーンショット 2023-11-17 13.30.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1b7e5f75-91fb-e3d0-b6c1-00736f7510f3.png)④ 「アプリの譲渡」を選択します。
![スクリーンショット 2023-11-17 13.31.51.png](h【SwiftUI】ウィジェットを強制的に更新する
# はじめに
アプリ側でウィジェットの着せ替えを設定できる仕組みを作った際に、
着せ替えを変更したタイミングで即時にウィジェットに反映されないと「変更されないじゃん」と思われてしまう可能性が高いです。
それを防ぐためにアプリ側で強制的に更新させたいです。今回はその方法を記事にしました。
# 実装
アプリ側で絵文字を設定するとウィジェットに表示される絵文字も変更されるというアプリで考えます。
`emoji`を`@AppStorage`で持ってAppGroupで共有しています。
これでウィジェット側でも`emoji`を使えるようになります。
“`swift
import SwiftUIstruct ContentView: View {
@AppStorage(“emoji”, store: UserDefaults(suiteName: “group.com.demo”)) var emoji: String = “❔”private let emojis = [“🐶”, “🐱”, “🐭”, “🐹”, “🐰”, “🦊”, “🐻”, “🐼”, “🐻
Gemini Pro APIをiOSで
Gemini Pro API公開されましたね
精度的にはGemini Ultraからかなり機能が絞られているだけあってGPT-4よりは劣ることが公式ベンチマークなどからもわかっていますが、一方で以下のようなメリットもあると思います。
– Google AI Studioですぐ試せる
– プレビュー版なのでまだ無料(ただし商用利用は不可)
– 画像を使ったマルチモーダルプロンプトも無料で試せる
– 各プラットフォームのライブラリとクイックスタートガイドが日本語で用意されている最も注目すべきはもちろん一番最後、各プラットフォームのライブラリとクイックスタートガイドが日本語で用意されているというところです!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10943/4ea25b08-f2c7-6bc4-8c59-4f8cf29eded1.png)
これは試しやすさに関して200点満点!
というわけで早速試してみたところを簡単に共有します。
## 動作の様子
SwiftUIでEnvironmentValuesを使ってカスタムActionをDIする
SwiftUIで、自分で作ったカスタムActionを使ってDIを行います。
# EnvironmentValuesのActionsについて
`@Environment` で使えるValueにはいくつかカテゴリがあって、その中の一つにActionsというものがあります。
https://developer.apple.com/documentation/swiftui/environmentvalues/#actions
これは、システム側で提供されるcallAsFunctionで定義されたアクションで、一つのタスクを行うことに特化したものになっています。
例えば `openURL` を使えば URL遷移を行うことができます。“`swift
struct OpenURLExample: View {
@Environment(\.openURL) private var openURLvar body: some View {
Button {
if let url = URL(string: “https://wチームワークと効率向上のカギ!メルカリが成功する大人数iOS開発のための手法とは?
こんにちは。メルカリ iOSエンジニアの[@sae](https://www.linkedin.com/in/saenuruki/)です。この記事は、[Mercari Advent Calendar 2023 の11日目の記事](https://engineering.mercari.com/blog/entry/20231211-large-team-development-at-mercari-ios/)です。
メルカリのiOSエンジニアが駆使する、驚くべき開発手法をご紹介します。大規模なチームで円滑な開発を実現するために導入されたマイクロモジュール化やトランクベース開発、コードオーナーシステムなど、その手法はまさにスケールのでかい開発環境に適したものばかり。さらに、自動化されたテストや確認のツールにより、効率的で品質の高い開発が可能となっています。
詳細な手法やその効果に興味を持った方は、[メルカリ Advent Calendar 2023 の11日目の記事](https://engineering.mercari.com/blog/entry/20231211-large-
【iOS】ライトニングトークイベントでAI関連の発表をした振り返り
この記事は[レコチョク Advent Calendar 2023](https://qiita.com/advent-calendar/2023/recochoku)の14日目の記事となります。
## はじめに
こんにちは。株式会社レコチョクの長島です。
2022年4月に新卒で入社し、iOSアプリの開発をしています。最近はソーシャルゲーム『ブルーアーカイブ』のサントラ『[Blue Archive Original Soundtrack Vol.4 ~Aiming for the ideal freedom~](https://recochoku.jp/album/A2003634996/album)』をよく聞いています。
[Unwelcome School](https://recochoku.jp/song/S1019267055/single?ds=1028432592)はミームの曲として有名ですが、元々すごく良い曲なのでオススメです。仕事が大変なときによく聞いています。今年はiOSアプリの開発に携わると同時に、AIに関する勉強会などにも多く参加していました。レコチョクでは
PagerDutyのiOSアプリをインストールすると電話通知が来なくなった話
## PagerDutyの活用
弊社ではシステムを監視しているツールをPagerDutyと連携させ、緊急度の高いアラート発生時のオンコールを実現しています(全てがそうなっているわけではありません)。## 突然、電話通知が来なくなった
PagerDutyにはiOS/Androidアプリがあります。
このiOSアプリ(v7.48.1)を携帯端末iPhoneにインストールし、アカウント連携を行なったところ電話通知が来ないという事象が起きました。https://support.pagerduty.com/lang-ja/docs/mobile-app
SlackにもPagerDutyからの通知が来るようにしているので、Slackを開いていたおかげですぐにアラートの発生に気づくことができました。ちなみにアプリからの通知は来ていました。
## なぜ?
PagerDutyからMy Profile > Notification Rulesを開き「When a high-urgency incident is assigned to me…」を見ます。以下のキャプチャではすべての通知
WKWebViewとネイティブのViewを同じスクロール領域でいい感じに表示したい
## はじめに
当方、Swift/SwiftUIは初心者ですが、勉強がてら個人開発を進めて先日Qiitaのクライアントアプリ「[QiitaReader](https://apps.apple.com/jp/app/qiitareader/id6470926641)」をAppStoreでリリースしました🎉
よければ覗いてみてください(現在`iOS16.4`以降対応)
https://apps.apple.com/jp/app/qiitareader/id6470926641
このアプリを構築する中で少し手こずった、「WebViewと通常のViewを同じスクロール領域でいい感じに表示する」という点を備忘録的に解説しようと思います。
## 実現したこと
記事閲覧画面を [Qiita API v2](https://qiita.com/api/v2/docs#%E6%8A%95%E7%A8%BF) の`GET /api/v2/items/:item_id`のレスポンス`rendered_body`(マークダウンをHTMLとしてレンダーした結果)を使用し、自前のCSSと組み合わせてW
関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた