タグ

rxswiftに関するkasahiのブックマーク (33)

  • iOS 14以降をターゲットにiOSアプリ開発するならどんな構造設計をするか 2021初夏

    はじめに この記事はiOS 13以降にもSwift Concurrency(つまりasync/awaitやActorなど)が使えるようになると思っていなかったときに書いたものです。 はなしの準備 雑談として「最近はどんなアーキテクチャでiOSアプリ作るの?」という話題があったので整理の文章を書いてみます。 Appleの性質上、2021年7月でもまだ決め手のようなものはないし、私だったらTCAやVIPERを候補にモジュール分割してなるべくDB使わずに作って必要になったらCore Dataを採用すると思います。 それはそれとして、Android BlueprintのREADMEかなにかでGoogleのソフトウェアエンジニアが「チームが生産性を最大化させるアーキテクチャを選べばいい」なんてことを書いてあったのを読んだ記憶があるんですが、それは最もですねと思いつつも、しかしそもそも選択肢がわからな

    iOS 14以降をターゲットにiOSアプリ開発するならどんな構造設計をするか 2021初夏
  • Redux+RxSwift+Realm+RxDataSourcesで日記アプリ - Qiita

  • 開発中のアプリをMVVMからMVCに戻した理由 MVVM×RxSwiftでの開発で得られた教訓

    2018年12月12日、株式会社サイバーエージェントにて「CA.swift」の 第7回が開催されました。AbemaTVやAmeba、AWAなどを担当しているiOSエンジニアが登壇し、それぞれのチームの開発ノウハウを惜しみなく語るイベント。今回は、『iOSアプリ設計パターン入門』の著者2名を含む5人のエンジニアが、iOS開発における知見を披露します。プレゼンテーション「なぜうちのチームは開発中のアプリをMVVMからMVCに戻したのか」に登壇したのは、株式会社ゆめみの史翔新氏。講演資料はこちら 開発中のアプリをMVVMからMVCに戻した理由 史翔新氏:先ほど紹介に預かりました史と申します。ふだんの勉強会では、loveeとか、星野さんと呼ばれているので、お気軽にどれでも好きな呼び方でお願いします。 というわけで、「なぜうちのチームは開発中のアプリをMVVMからMVCに戻したのか」というタイトルで

    開発中のアプリをMVVMからMVCに戻した理由 MVVM×RxSwiftでの開発で得られた教訓
  • RxSwiftなどを利用しないMVVMのサンプル - Qiita

    はじめに RxSwiftReactiveCocoaなどのReactive Programmingを実現するフレームワークを利用する方が増えているので、もともとデータバインディングの機構がなかったiOSアプリ開発においてもMVVMを用いるられる機会が増えつつあると思います。 そのため、RxSwfitなどを用いてデータバインディングを行うデザインパターン = MVVMという雰囲気が漂っている気がしています。 MVVMは、View・ViewModel・Modelによって構成されます。 Viewはユーザーからのアクションを受け取って、そのイベントをViewModelにバインドします。 そして、そのバインドされたイベントによってViewModelはModelの取得や更新を行います。 ViewModelは更新された情報をイベントとしてViewにバインドし、Viewはバインドされたイベントをもとに結果

    RxSwiftなどを利用しないMVVMのサンプル - Qiita
  • ペイモのリファクタリングとの戦い

    割り勘アプリ「ペイモ」がリリースされて早1年。僕がペイモiOSの開発に関わり初めたのはリリース直後だった。驚くべきことに、当時、弊社AnyPayにはアプリエンジニアが誰もいなかった。 誰がペイモを作ったのか。そう、完全に外部のチームがペイモiOS/Androidを作りあげたのだ。それもおよそ3ヶ月という短い期間で。さらに、プレスリリースの日付も決まっていたので、決して遅れることは許されなかった。今、当時の仕様書を振り返ってみても、よくこれをそんな短時間で作り上げたな…となってしまう。 では、そんな短時間でこんなハードな開発を行うとどうなるのか…。ブクブクに太ってしまったViewController。APIから受け取った配列データをDictionaryにマッピングした結果期待通りの順番が保証されていないデータ群。急に登場するTableViewController。どこで値が更新されているのか

    ペイモのリファクタリングとの戦い
  • Swiftで乃木坂46「きっかけ」を演奏したい - Qiita

    iOSアプリエンジニアのYuyaAboです。 https://qiita.com/advent-calendar/2017/istyle 15日目です。 乃木坂46の曲「きっかけ」の一部分を、Swift(RxSwift)と、ピアノの音ファイルを使って、演奏に似たなにかをしてみました。 きっかけとは まず「きっかけ」についてです。 「きっかけ」とは、乃木坂46 2ndアルバム「それぞれの椅子」に収録されている曲です。 ↓MV それぞれの椅子(wikipedia) Mr. Childrenの桜井和寿さんがライブでカバーしたこともあるので、知ってる方もいるかもしれません。 とても良い曲なのですが、けっこうむかしの曲なのです。どうして今さら「きっかけ」か。 やろうと思ったきっかけ 3つくらいあります。 乃木坂46東京ドームLIVEの影響 ここ、つらつらと思いの丈を書いていたら、引くほど長くなってし

    Swiftで乃木坂46「きっかけ」を演奏したい - Qiita
  • Firebase & RxJava & RxSwift のおかげで iOS / Android / サーバ同時開発リリースできました - Qiita

    Firebase & RxJava & RxSwift のおかげで iOS / Android / サーバ同時開発リリースできました mixiグループ Advent Calendar 2017の11日目になります。 @oogatta です。 TL;DR モバイルアプリ開発経験の少ない少人数チームでも、ネイティブアプリ同時リリースできた。誰のおかげか? Firebase と Kotlin のおかげだ!(あと、苦労したけど Rx も)(あ、一応、 Swift も…) はじめに 私の所属するチームには私を含めエンジニアが2名います。この2名で iOS / Android / サーバ(Cloud Functions)をすべて担当しながら、クライアント側はネイティブアプリを作ってリリースしました。 チームとしての初リリースであり、まだプロダクトとして立ち上がっていないフェーズですので、特にYAGNI

    Firebase & RxJava & RxSwift のおかげで iOS / Android / サーバ同時開発リリースできました - Qiita
  • AVFoundationとRxを組み合わせる - Qiita

    Swift その2 Advent Calendar 2017の11日目の記事です。 はじめに 動画を 画像+音声の集合体 画像が時間に応じて変化していく 音声が時間に応じて変化していく 時間に応じて変化していくデータと考えた際にリアクティブプログラミングと相性が良いと思いました。 エントリーでは、AVFoundationとRxSwift/RxCocoaを使い、動画再生に関してRxと組み合わせた実装を少し紹介します。 サンプルコードは公開しているので良かったら参考にしてみて下さい。 to4iki/VideoPlayer 動画再生の前提知識 動画を再生するまでのコンポーネントの紹介 AVAsset 動画自体のメディアデータやメタデータをロードし、保持するクラス AVPlayerItem 動画の再生ステータスや時間軸に応じたメタデータを取得するクラス AVPlayer 動画の再生、停止を管理す

    AVFoundationとRxを組み合わせる - Qiita
  • RxSwiftでの実装練習の記録ノート(前編:Observerパターンの例とUITableViewの例) - Qiita

    1. はじめに 昨年からなかなか着手ができなかった部分でもあるRxSwiftに今年こそは実際にサンプルを作って、最初の触りの部分や感覚を掴んで見たいという思いから、自分なりの取り組みではありますがRxSwiftに関するサンプルを実装(写経)をした上で、できる限り自分の言葉でのドキュメンテーションと実装時に参考にした資料等をまとめることができればと思い、まとめた次第です。 2. サンプルに関して 今回のサンプルに関しては【Warming Up】〜【Chapter3】の現在全4パターンありますが、この記事内では比較的実装コード量が少なくかつ通信が伴わないものに関しての解説を行なっていく形になります。 Githubのリポジトリ: RxSwiftの練習記録ノート(Swift3.xバージョン) サンプルのキャプチャ画像: 今回解説を行うサンプル: 【Warming Up】テキストフィールドやボタン

    RxSwiftでの実装練習の記録ノート(前編:Observerパターンの例とUITableViewの例) - Qiita
  • I create iOS apps - is RxSwift for me?

    About the content This talk was delivered live in September 2016 at try! Swift NYC. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers. It is difficult to make the jump from map and filter to presenting view controllers or search bars that need to call an API on the web and populate a table view. To be honest, at first

    I create iOS apps - is RxSwift for me?
  • Swiftを使ったAPIクライアントの実装方法 - ユニファ開発者ブログ

    はじめましてiOSエンジニアのしだです。 おかげさまで、去年12月に るくみーnote という園で利用してもらう連絡帳アプリをリリースしました。(実際に園でご利用いただくのは4月からの予定です) iOS版の るくみーnote では主に Alamofire 、 ObjectMapper 、RxSwiftSQLite.swift などのライブラリを利用しています。 今回は、そのときに実践した Alamofire + ObjectMapper + RxSwift を使ったAPIクライアント周りの実装方法を紹介したいと思います。 以下のサンプルの実装は Slack WebAPI を使って説明しています。 準備 Xcode 8.2(Swift 3) Alamofire 4.2.0 ObjectMapper 2.2.1 RxSwift 3.0.1、 RxCocoa 3.0.1 Slack Web

    Swiftを使ったAPIクライアントの実装方法 - ユニファ開発者ブログ
  • 2016年いいなと思ったSwiftのライブラリ - Qiita

    2016年ももうすぐ終わり。 なので今年いいなと思ったマイナーっぽいライブラリを紹介していきます。 地味に便利系が多いかも。 RxSwift RxとはReactiveX(Reactive Extensions)のSwift実装です。他にもRxJavaやRxJSなど各言語や各プラットフォーム用のRxがあります。 observableなどの考え方が面白いなと思い今コレを使って何か作ろうかと思ってます。 最近注目されてるであろうライブラリです。 Qiitaでもたくさん記事があります。 他にもRxSwiftと一緒に使うことができるライブラリなどもあります。 RxRealmなどの有名ライブラリなどが対応しています。 RxSwift Community PermissionScope 画像のように簡単に通知や位置情報の使用の許可などを取ることができます。 AsyncKit 有名かもしれない。 これは複

    2016年いいなと思ったSwiftのライブラリ - Qiita
  • RxSwift つかってる部分の引き継ぎしてる - @hadashiA

    前回 に続き、担当してたアプリについて考えていたこと書き記してる。 とくに RxSwift がなぜ良いのか? ということは、説明がすこしむつかしいので、すこし丁寧に書くチャレンジをしてみている。冒頭のところ公開してみる。 -- Rxは何を解決できるか? クライアントサイドのアプリケーションへの入力は、タイミングがまったく予測できず、おまけに、並列であちらこちらに到着します イメージ図) 入力の種類 \ 時間 0.166秒 0.33秒 0.5秒 0.66秒 ひとさし指の動き タップ! スワイプ開始! おにいさん指の動き タップ! HTTPレスポンス その1 到着! JSONのデコード 完了! 写真の読み込み 完了! HTTPレスポンス その2 到着! PNGのデコード 完了! これらバラバラのタイミングで連続して発火する入力を漏らさず受け取り、整合性を取っていかなければいけない、この辺りにク

    RxSwift つかってる部分の引き継ぎしてる - @hadashiA
  • RxSwiftは開発をどう変えたか?

    作りすぎない技術 - API時代の開発努力の在り方について考える / Thinking about the state of development efforts in the API era

    RxSwiftは開発をどう変えたか?
  • RxSwift+CleanArchitectureで構成をキレイにしよう - Qiita

    はじめに アプリケーションを開発しリリースした際に、当初は問題なくても時が経つにつれて綻びが出てきます。 仕様変更や機能追加やリファクタリングができない(後回しにしたまま)、開発に携わる人の理解や嗜好による統一感の喪失などなど。 そうするとこんなことが起きることもしばしば。 ViewControllerの肥大化 責任範囲がぶれたクラスの誕生 Model/Helper/Libraryが人の解釈に依存するディレクトリ・ファイルの散見 ViewModelとModelの扱いがごっちゃになっている こうなるとどんどん作りが複雑化し、気が付くと負の遺産が出来上がっています。 メンバーの理解度を上げる、チーム内でルールを決めるという解決する手もあるのですが できればもう少し役割がはっきりしていて、共通認識持ちやすいアーキテクチャがないかなーと思っていてたところ…それはありました。 それがCleanArc

    RxSwift+CleanArchitectureで構成をキレイにしよう - Qiita
  • RxSwiftのiOSサンプルコードを読み解いてみた - Qiita

    この投稿がQiitaデビューです*\(^o^)/* RxSwiftのExamplesを読み解いてみました。 RxSwiftのレポジトリにある Why.md や GettingStarted.md は読んでみた。ストリームというのも読んで恐らく分かった。Qiitaの関係ある記事もちょくちょく読んでみた。次はiOSプロジェクトに活かそうと思っているが取っ掛かりが掴めないという人向け。(自分) Adding Numbers Observable.combineLatest(number1.rx_text, number2.rx_text, number3.rx_text) { textValue1, textValue2, textValue3 -> Int in return (Int(textValue1) ?? 0) + (Int(textValue2) ?? 0) + (Int(text

    RxSwiftのiOSサンプルコードを読み解いてみた - Qiita
  • Clean Architectureで設計してRxJSを使った話

    歌舞伎座.tech#7「Reactive Extensions」での発表資料 http://kbkz.connpass.com/event/12597/Read less

    Clean Architectureで設計してRxJSを使った話
  • RxSwift で使うオペレータ一覧 - Qiita

    RxSwift を勉強し始めてぶつかる壁に「オペレータの意味が分からない」というのがあると思います。 というわけで勉強も兼ねてオペレータを書き出してみました。 英語の勉強と一緒で単語(オペレータ)の意味が分かればコードがやってる意味も見えてくると思うので RxSwift を勉強しているからはこの一覧を斜め読みするといいかもしれません。 また、Rx 自体の歴史的経緯や、実装された言語によっては予約語のため使えなかったなどの理由で、Rx で定義されたオペレータ名がそのまま RxSwift で使用されているとは限りません。このことを頭の片隅に入れておくと混乱が少なくなるかもしれません。 ※元ネタはReactiveXのドキュメントです。日語に訳しただけともいう。 Creating Observables Observables を作成するオペレータ群 asObservable, toObserv

    RxSwift で使うオペレータ一覧 - Qiita
  • RxSwift で MVVM パターンを作るときに参考になるサンプルコードまとめ - Qiita

    artsy/eidolon artsy/eidolon オープンソースの iOS アプリ。 元々は RAC 2 で作っていたものを RxSwift で書き換えたとのこと。 その PR がこちら: Migrates from ReactiveCocoa 2.x API to RxSwift #569 https://github.com/artsy/eidolon/pull/569 sergdort/RxMarvel sergdort/RxMarvel Keeping this in mind I like to think about ViewModel as a “Black Box” which accepts some UI triggers, other dependencies and apply some Rx operators https://medium.com/@Ser

    RxSwift で MVVM パターンを作るときに参考になるサンプルコードまとめ - Qiita
  • RxSwiftでLike情報の画面間共有 - Qiita

    グローバルな情報(今回はLikeの情報)を複数の画面間で共有する! SNS系のアプリなどを作る際にグローバルな情報を複数の画面間で共有しないといけない場合がありますよね!例えばLikeの情報など 今回はユーザーが変更したこのLikeの情報をどうやって複数の画面で共有するかをRxSwiftを使って実践してみました。 サンプルコードはこちら!(Sample5です) 実際何をしているのか 今回はAPI通信はせずにローカルだけで情報の共有を実装して、cellにもCellModelを保持させていません。 *Twitter APIを利用してAPI通信も行うサンプルを実装予定 やったこと - RxSwiftを使ってタイムラインを表示(TableView) - 詳細画面に遷移後Likeボタンを押してLike情報を更新 → タイムラインの画面でもその情報をもとにLike情報をアップデート!!! ステップ1:

    RxSwiftでLike情報の画面間共有 - Qiita