ソースのURL デモ動画 なぜOSSにするのか? 2021年7月〜11月にかけて、アーティストが独自の音楽ストリーミングアプリを作れるサービスを開発していました。 事業として上手くいかなそうで、事業撤退するのでOSSにします。 LPはこちらです。 -> https://origify.app/ このソース誰得? SwiftUIを使って音が流れるようなアプリケーションを作りたい人 なぜ作ったのか? 地元の山梨で活動している同じ中学だったアーティストが 「CDが売れない。ストリーミングの分配率が低い。」などの 悩みを抱えていたので、 その悩みを解決したいと思い、このサービスを作り始めました。 サービス名はOrigifyです。 事業がうまくいきそうだったら、VCから資金調達をして、サービスを始めようと思っていました。 なぜこの事業を撤退したのか? 権利関係が難しい Apple StoreとGoo
プラットフォームによってはアプリケーションの実装技術には複数の方法があり、開発側の要件や制約、好み等に合わせて適した技術を選ぶことができます。例えばiOSアプリケーションの実装技術には、Appleが提供するCocoa Touch(およびUIKitやSwiftUIなどのフレームワーク群)がありますが、そのほかのベンダーから提供されている技術として、FlutterやReact Native, Titanium, Xamarinなどのフレームワークも存在します。 どのフレームワークが一番優れているのかを語ろうとすると宗教戦争に発展してしまいますので、そこは避けつつも「ネイティブとは何か」の解釈をはっきりさせておきたいと思いました。 どのようにして実装技術を選ぶのか開発現場としては、大抵は次のような観点で実装技術を選ぶことになると思います。 ・開発コスト、運用コスト重視 ・開発スピード重視 ・技術
こんにちは!クラシルiOSアプリを開発しているknchstです。 昨今のモバイルアプリケーション開発では様々な要件があり、それらを満たすよう実装するには数々の苦難がありました。その一つとしてUIの状態、所謂State管理が難しくなってきています。ネットワークに接続し、またUIをアニメーションさせたりと、データとUIを同期するのは困難を極めます。 Rxなどのリアクティブフレームワークの利用が当たり前になり、ReactNaviteやFlutterなどのフレームワークをプロダクトに採用する企業も増えてきて、モバイルアプリのトレンドの風も、まさにこの方向に向かって吹き始めていました。 そして今年のWWDCでAppleがSwiftUIを発表してついに、その風は大きくなり今後のモバイルアプリの方向性を決定付けたと言っても過言ではないでしょうか。 今回は、SwiftUIとFlutterでアプリを開発する
12年前くらいからiOS向けのアプリを作ってきた。最初は学生の個人開発、途中から仕事、そして最近は(仕事ではあまりやらなくなったので)趣味的にやっている。UIKitで、はじめの頃はUITableViewが難関だった。毎年のアップデートでUIKitはどんどん拡充されて、Objective-CはMRCからARCへ、そしてSwiftも出た。 毎年の変化を差分で学んできて、振り返ってみると、当初のそれからは大きく変わっていて、便利なんだけど、とにかく膨大だ。 SwiftUIの登場 というところで、2019年にSwiftUIが出た。SwiftUIを使うと、宣言的にユーザーインターフェースを構築できる。UIKitでできること全てをSwiftUIで実現できるわけではないが、それでも2020年のアップデートでかなりカバー範囲が拡がった。 それで、SwiftUIでちょっと何か作ったりしている。例えばメニュー
この記事は、はてなエンジニア Advent Calendar 2020の21日目です。昨日は id:tarao による Scalaの依存ライブラリ更新はRenovateでもけっこうイケる でした。明日は id:Krouton です。 みなさん在宅勤務してますか? 私もしています。 仕事も雑談も、とにかくオンラインで話すことが多いので在宅勤務中は AfterShokz という骨伝導ヘッドホンを使っている。ずっと装着してても疲れにくいので、大変いい買い物です。 いちいち外すのも面倒なのでほとんど一日中付けっぱなしにしているんだけど、これが事故を呼ぶこともある。マイクをオフにすることを忘れて離席してしまうと、オフのときの会話が筒抜けになってしまうので、同僚の前ではおとなしいのに家族の前では豹変するとか……。あとおしっこしてる音が聞こえちゃってないとか。気になりますよね。油断できない。 そういうわ
概要 SwiftUI Advent Calendar 2023 の 21 日目です。 最近趣味で iOS の podcast クライアントを SwiftUI で作っているのですが、やってみると podcast クライアントはアプリとしてそれなりに難しいことがわかってきました。作っているうちにどんどん状態管理が複雑になってきて、個人開発でなぜこんなにがんばりが必要なんだと思って開発が止まっていたのですが、最近 iOS 17 の登場をきっかけにアプリを全般的に書き直すことにして、同時にアーキテクチャを変えてみました。これにより構成がシンプルになって開発効率が上がり、開発を再開することができました。具体的には、 from: 1画面に1つ ViewModel(ObservableObject)を作り、 View から ViewModel を監視する MVVM to: View から直接 Model
こんにちは。メルペイのiOSチームの@kenmazです。 メルペイのiOSチームでは Xcode11 で導入された Xcode Previews 機能を用いて、UIKitベースのプロジェクトの開発効率向上に取り組んでいます。Xcode PreviewsといえばSwiftUI用の開発支援機能、というイメージがありますが、実は従来のUIKitベースのプロジェクトに対しても使用が可能です。 Xcode Previews を使うことでiOS Simualtor等を起動することなく、様々な状態のビューをリアルタイムにプレビューできるため、開発効率が大幅に向上します。 またXcode Previewsが提供する強力なプレビュー機能を使うことで、Interface Builderの支援も不要となったため、従来のxib/Storyboardを用いたビューの実装から、コードによるビューの実装への移行を試みる
こんにちは。 経費精算サービス「マネーフォワード クラウド経費」の開発チームでiOSエンジニアをしている河島です。 本日、ICカードリーダー by マネーフォワードのiOS版アプリをストアに公開しました。 交通系ICカードから利用履歴を取得して表示したり、マネーフォワードのサービスと連携して家計簿や経費精算などに役立てていだだけるアプリになっているので、よろしければダウンロードして使っていただけると嬉しいです。 今回はそのICカードリーダーアプリの開発について共有してみようと思います。 動作イメージは以下のような感じです。 経緯 マネーフォワードでは、以前からICカードリーダー by マネーフォワードのAndroidアプリを提供しており、ユーザーの皆様から経費精算などに便利だと好評いただいておりました。 iOS版が欲しいというご要望もあったのですが、FeliCaから必要な情報を取得するAP
はじめに こんにちは.R&D チームの久保です. 現在 JavaScript や JavaScript にトランスパイルする言語 (TypeScript, 新し目の ECMAScript など) が主流であるフロントエンドの Web アプリケーションフレームワーク界隈ですが,数年前に WebAssembly の実行が主要ブラウザ全てでサポートされて以来,ひそかに他の言語によるフレームワークが増えつつあるのをご存知でしょうか?しかもそれらは,JavaScript でデファクトスタンダードとなりつつある React や Vue.js などと同様,仮想 DOM を実装していたりします. 例としては C# (.NET) の Blazor, Rust の Yew, Go の Vugu, C++ の asm-dom などがあります.ただ,現時点ではその多くが実験的なプロジェクトであり,今すぐに Jav
はじめに この記事はiOS 13以降にもSwift Concurrency(つまりasync/awaitやActorなど)が使えるようになると思っていなかったときに書いたものです。 はなしの準備 雑談として「最近はどんなアーキテクチャでiOSアプリ作るの?」という話題があったので整理の文章を書いてみます。 Appleの性質上、2021年7月でもまだ決め手のようなものはないし、私だったらTCAやVIPERを候補にモジュール分割してなるべくDB使わずに作って必要になったらCore Dataを採用すると思います。 それはそれとして、Android BlueprintのREADMEかなにかでGoogleのソフトウェアエンジニアが「チームが生産性を最大化させるアーキテクチャを選べばいい」なんてことを書いてあったのを読んだ記憶があるんですが、それは最もですねと思いつつも、しかしそもそも選択肢がわからな
開発言語と主要フレームワーク 95%以上Swiftで、特に古いテストやエンティティはObjective-Cが少しだけあります。新規のものは必ずSwiftで開発していて、残っているObjective-Cは少しずつ減らしています。 使っているSDKのバージョンに関しては、Xcode 12への移行対応が終わっており、近日中に12でビルドしたバイナリーを公開する予定です。 ほぼほぼUIKitですが、いくつかの画面でSwiftUIを使っています。最低対応のSDKはiOS 13なので、LazyStack系やLazyGrid系がまだ使えないのですが、設定周りの画面など、CollectionViewっぽくない画面を今年中にたくさん移行しようと思っています。移行自体は色々考えてプロトタイプを作るなどして、2020年のiOSDCで発表しました。また、UIKitはモダンなAPIを使うように心がけており、例えば、
2019/08/07 Bonfire iOS #6 https://yj-meetup.connpass.com/event/136285/ apple/swift-evolution: SE-0255: Implicit return from single expressions https://github.com/apple/swift-evolution/blob/master/proposals/0255-omit-return.md SE-XXXX: Function Builders https://github.com/apple/swift-evolution/blob/9992cf3c11c2d5e0ea20bee98657d93902d5b174/proposals/XXXX-function-builders.md SE-0244: Opaque Result T
山奥の砦(八王子市)からminneのiOSチームでアーキテクチャや開発環境を色々と見ているjoshです。SwiftUIとCombineが発表されたWWDC 2019から、SwiftUIとUIKitの混在状態を前提としたminneアプリに最適なアーキテクチャについて検討・議論した結果、最近色々と決まったので、紹介したいと思います。 まず、アーキテクチャ決めの目的ですが、テストしやすい形で迷わずに開発でき、機能開発を効率よくしつつ、今後の保守や変更も楽に行い、生産性と品質を上げることです。minneは特徴として、ネットワーク通信の多いアプリで、Universal Linksやプッシュ通知など、数多くの起動経路を持っています。また、minneマーケットプレイスの作品をさまざまな購入方法で提供しているので、開発をする中で特にその周りで不具合が出ないように日々開発しています。作家、購入者・ゲストごと
はじめに 導入に向けて検討したこと 流れ 1. UIKit 及び Storyboard をどのように置き換えるのか 2. 書き慣れた MVVM パターンを維持できるのかどうか 3. 既存のプロジェクト構成でもスムーズに導入できるのか 4. アプリのサポートOSが iOS14.0+ だが、 SwiftUI 特有の苦しみは問題なさそうか 5. 本当に開発効率は向上できるのか 導入決定後から本格対応までにやったこと 流れ 1. 画面構成がシンプルで、利用頻度の低い設定画面の SwiftUI 化 2. チーム勉強会の時間を使って一緒に学習 実践 移行計画 成果 おわりに We are hiring! はじめに N予備校 iOS アプリ 開発チームでは、長い間 UIKit & Storyboard & RxSwift & MVVM で開発してきました。 以前から「Storyboard やめたい!」「
@hiragramです。nanaのプロダクトマネージャーとiOSアプリ開発を担当しています。 nanaは現在フルリニューアルに向けた作り直しに取り組んでいます。2022年9月現在、デザインや仕様を練ることと、手触りを確かめるためのプロトタイプ実装とを、グルグル繰り返しているところです。そのグルグルをより速くするために作った仕組みを紹介します。 UI確認用のプロトタイプアプリ nanaのiOSアプリ開発において、私たちはコードを書かずとも簡単にモックを作れるようなよくあるプロトタイピングツールを使わず、ネイティブアプリとしてプロトタイプを実装しています。nanaのプロトタイプには単なるデザインの事前確認だけではなく、仕様に対する設計の事前確認、シンプルな良い設計のための仕様の事前確認といった目的があり、それらは既存のプロトタイピングツールでは実現できないためです。 SourceryでXcod
PixelaUI Yutaro Mutaユーティリティ無料apps.apple.com これはなに? Pixela のiOS/iPadOS向けクライアントアプリケーションです。 アプリ名は、後述する使用frameworkである SwiftUI ともかけています。 サポートOSバージョンは iOS/iPadOS 13.2以上 です。 どうやって使うの? Pixelaの使い方を見てもらうとよいです。 これの主要機能を、iOS/IPadOSのUser Interfaceで提供しています。*1 blog.a-know.me Pixela自体はAPIのみを提供していて、User Interfaceはサードパーティ製というスタンスを取られています。 一方で、Programableと結びつきにくい日常生活の中で手軽に使うにはハードルが高い側面があります。 iOS/iPadOSで気軽に扱えるように、という
こんにちは! dely 株式会社で iOS を担当している nancy こと仲西です。 本記事は dely Advent Calendar の11日目の記事です。 qiita.com adventar.org 昨日は小林さんが「UI デザイン × PdM で広がるデザインの可能性」というテーマで書いています。 https://dely.design/n/nfbad0dcdec77dely.design UI デザイナーが PdM をやると何がいいのか、 どんな点を心がけるべきなのかといったことがまとまっているので、気になる方はぜひご覧ください! ちなみに、記事内でチラッと私も登場しています(笑) はじめに 本記事では iOS 13以降で使用できる Apple 純正のフレームワークである Combine と、 Combine と似た機能を有する OSS フレームワークである RxSwift
Easily preview Mermaid diagramsLive update when editing in your preferred editorCapture screenshots with customizable marginsCreate PNG from the TerminalFree download on the Mac App Store MethodologyThe methodology and tools to create this article have been detailed in my previous posts. If you are interested, please refer to: Apple’s use of AppKit, Mac Catalyst and SwiftUI in macOSEvolution of th
はじめに 問題点 ベンチマークテスト(Sampleコードで実演) 計測方法 パターン1: Identifiableに適合したデータのリスト表示 ベンチマークスコア パターン2: リスト内ボタンの表示 ベンチマークスコア ベンチマーク結果 問題発覚と調査 解決方法 改善とその結果 パターン3: UIViewControllerRepresentableを利用したリスト表示 パターン4: 従来通りのUIKitのUITableViewを利用したリスト ベンチマーク結果 改善の結果 総括 We are hiring! N予備校春の入学無料キャンペーンのお知らせ はじめに こんにちは。N予備校iOSアプリ開発チームです。 以前、N予備校iOSアプリへ SwiftUI を導入するまでの道のりについてという記事を書かせていただきました。今回は導入しSwiftUI化を一部の画面で行った結果、どうなったかを
2021年11月にはてなが開発しているマンガビューワのアプリ版である「GigaViewer for Apps」を提供開始しました。 hatenacorp.jp 同日に、その最初の導入事例としてコミックガルド+をリリースしています。 GigaViewer for AppsのiOSアプリはSwiftUIをフルに活用して開発をしています。この記事では実際に使っているSwiftUIの便利コンポーネントをソースコード付きで紹介します! GigaViewer for Appsに関しては、座談会の記事や、Android版の設計について書いたブログもありますので、あわせてお読みください。 この記事では主にカスタムコンポーネントの使い方を紹介します。コンポーネントの実装サンプルはリポジトリに公開しているので、こちらもご確認ください。 github.com PageViewController - UIPag
Welcome to the website of Stanford University's CS193p (Developing Applications for iOS using SwiftUI). You'll find materials from past iterations of the course here, including the most recent quarter: Spring 2023. For more, check out the About page.
ここで言うSingletonというのは、ある種のグローバル変数を指している。そもそもクライアントアプリケーションの開発においては、実質的なグローバル変数が出現しやすい。環境にたった一つしか存在しない、存在すべきでない、というものが見出せる。例えばタイムゾーンがそれである。アプリケーション内のタイムゾーンはシステムに合わせるのが自然であり、アプリケーション中で複数存在することはほとんど起こり得ない。 iOSやmacOSでは、タイムゾーンを表すのはFoundation frameworkのTimeZoneである。システムのタイムゾーンはTimeZone.currentで取得できる。これはSingletonパターンのインターフェースに近い(本当にインスタンスが一つであるかどうかをここでは問題にしない)。 このように環境中で存在する個数が限定されるような値を表すのに、Singletonパターンが用
こんにちは、モバイルアプリを開発しています高橋です。交互に仕事場に猫二匹がやってきて監視されながら仕事しています。 先日リリースしたとある iOS アプリは、 機能は機能ごとに分割して実装したい 依存解決のコードは自動生成したい ライトウェイトな設計としたい というコンセプトの元、コンパイルセーフな DI フレームワークの uber/needle を使い、uber/RIBs のようなアプリケーションアーキテクチャでデザインすることで、各コンポーネントをコンパクトに分割することができました。 Needle や RIBs が前提知識となります。そのため本記事ではざっと Needle と RIBs を解説したのちに、具体的なコードを交えて SwiftUI + UIKit (Storyboard) ハイブリッド対応でかつ Needle + RIBs インスパイアなアプリケーションアーキテクチャの一
明けましておめでとうございます。新しい年ということでアイコンも一新した lovee です。はい、あまりにもビビったのでラノベっぽいタイトルにしてみました。後悔はしていない。 なぜアプリ作ろうと思ったの? いやーそれなりに長い間 iOS エンジニアやってきたけど、業務ではそれなりにたくさんのアプリを作ってきたけど、完全に個人でアプリを作ったことがまだ全くないんですよね。というわけで去年「今年中に個人アプリを出す」という目標を立てました。結局去年中には出せなかったがとりあえずまだ今年度中ということで開き直ってます どんなアプリ? 簡単に言うとただ単にユーザが入力した文字列を QR コードに変換するだけのアプリです。それだけです。でも本当の使い方はアプリをいちいち立ち上げて QR コードを作るのではありません。このアプリは iOS ネイティブの共有メニューを対応しているので、別のアプリから共有メ
This used to be an epic documentation site, but Alex Fine (CEO of Fun Group, criminal) didn’t pay his employees.
こんにちは。きんくまです。 今回はiOS13から使えるようになったCombineをやってみました! Combineって何? イベントの発行と購読をすることができるフレームワークです。 非同期処理の中で使えばスッキリと書くことができるので、コールバック地獄とか死のピラミッドとかがおきなくなります。 Appleが元ネタにしたと明言しているのかどうかはわかりませんが、似たOSSライブラリにRxSwiftがあります。 ReactiveX/RxSwift: Reactive Programming in Swift - GitHub また最初に書いたのですが、iOS 13以降に使えるフレームワークなのでiOS 12以下は使えないことにご注意ください。 iOS 13から使えるようになったSwift UIとセットで使うと良さそうですね。 さて、Combineには大事な要素が3つあります。 Publish
こんにちは、スマートバンクでアプリエンジニアをしている ロクネム です。 みなさんはSwiftUIでViewを実装する際に、”余白” をどのように実装していますか? SwiftUIにおける余白の表現方法はいくつか存在しており、どの方法を用いても同じレイアウトを実装することが可能です。 しかし、一見同じに見えても意図しない余白が生まれてしまっていたり、変更に弱いレイアウトとなってしまったりするケースが存在しています。 本記事では、SwiftUIにおいて余白を表現する上でどのような実装方法を選択するのが適切であるかについて、具体例を3つほど挙げながら説明します。 要素間の余白の表現 配置によって生じる余白の表現 要素外側の余白の表現 まとめ 要素間の余白の表現 まず、Textが縦に3つ並んだレイアウトについて考えてみます。 1つ目と2つ目のTextは16pt、2つ目と3つ目のTextは8ptの
これは はてなエンジニアAdvent Calendar 2019 1日目のエントリーです。 今年のAdvent Calendarでは初日を担当します id:yutailang0119 です! 去年はツール作りの話を書きましたが、今年は先日のアンケート記事でも言及していたSwiftUIの話です。 お題 SwiftUIで 編集可能なテキストの リストを作り Rowごとに削除が可能 これが実は難しいお題だったので、解説していきます。 環境 Xcode 11.2.1 (11B500) 2024/02/19追記 Xcode 15.2 (15C500b) 現在 (おそらくこれ以前に) 、ForEachにBindingなinit(_:content:) が追加*1されたため、単純に実装が可能になりました。 ただし、1入力ごとにstateが確定し、キーボードが閉じてしまうため、この条件ではうまく機能しない
はじめに 昨今Android/iOSネイティブアプリの開発では「宣言的UIを利用したUIフレームワーク」(以下、このようなフレームワークを宣言的UIフレームワークと本記事では呼称します)が台頭しようとしています。この流れは、Reactの考え方やそれ自体を利用したFlutterやReactNativeのようなマルチプラットフォームフレームワークから始まり、AndroidではJetpackCompose、iOSではSwiftUIと、現在はそれぞれのプラットフォームにも取り込まれるまでになっています。 宣言的UIフレームワークは旧来の手続き的な方法よりもより直感的にUIを記述することができ、採用することでViewの構築をより効率よく行うことができます。これまでは既存のアプリケーションにこの方法を取り入れようとした場合、FlutterやReactNativeであれば新規に言語すら違うフレームワーク
SwiftUI(と関連知識)を習得するための100本ノックです。 「SwiftUIチュートリアルの次に何をすれば良いかわからない」という人向けに作ってみました。 100問無いので逐次追加します。 またもっと良い解答例があればコメントでどんどん教えてください m(_ _)m 2023/01/06 更新 新しい記事を作成しました。 SwiftUI100本ノック iOS16バージョン かんたん(SwiftUIの簡単な構文だけで実装可能) 画像をリサイズして表示(fit) 150✖︎200サイズに画像をリサイズして表示させてください。 アスペクト比が異なる場合は余白を赤色で表示してください。 解答 画像をリサイズして表示(clip) 150✖︎200サイズに画像をリサイズして表示させてください。 アスペクト比が異なる場合ははみ出た箇所を切り取って表示してください。 解答 参考 【SwiftUI】画
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く