タグ

mvvmに関するteracy_junkのブックマーク (49)

  • Sending events from ViewModel to Activities/Fragments — The right way

    In MVVM, Whenever you want to show some toasts or snack bar or sending an intent, you have to send a message from your ViewModel to the activity or fragment and ask it to do the job but the normal methods to do so all have big fallbacks. In the ShowToast example, ViewModel is deciding when to show the message and what message to show but it is the view that is responsible for showing the actual me

    Sending events from ViewModel to Activities/Fragments — The right way
    teracy_junk
    teracy_junk 2019/10/11
    「interfaceをViewModel定義して、Viewでそいつを実装してViewModelに渡すのが一番楽だけど、それを選ぶ奴はほんとバカ」これな…
  • Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する|ハイクラス転職・求人情報サイト AMBI(アンビ)

    Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する Androidアプリの開発において悩ましいアーキテクチャの選定。記事では選定する意味を改めて整理し、 MVP・Clean Architecture・MVVM・Fluxといった最新の実例を紹介します。 はじめまして。Androidエンジニアの藤原聖(ふじわら・さとる/@satorufujiwara)です。 現在は株式会社サイバーエージェントで、エンジニアリングマネージャーを兼任しています。2017年で35歳になり、定年を迎えました(プログラマの定年については「体型を支える技術」などを参照)。 Androidアプリ開発には2010年から携わっていますが、今現在の関心事は何といっても公式開発言語に採用されたKotlin。そしてもう一つが、Android

    Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • MVVMをベースにしつつCleanArchitectureを取り入れてみた - Qiita

    2018/11/10 追記 かなり時間が経ってしまいましたが、当時の理解が甘かったところがあり、CleanArchitectureというよりも、レイヤごとに分離させたという方が適切な表現であると気がつきました。 では何をもってCleanArchitectureなのか?というのは、こちらの記事が参考になりました。 https://qiita.com/gki/items/f601afbfada85fd8624e —— 概要 自社サービスのアプリのアーキテクチャにMVVMを採用していたのですが、 ViewModelやModelが肥大化 Mの部分が上手く実装できておらず、データ層の取り回しやビジネスロジックまわりに不便を感じてきた などの課題があったので、CleanArchitectureを参考に「データレイヤを厚めにする+ビジネスロジックの分離」を行ってみましたという内容です。 各クラスの名前は

    MVVMをベースにしつつCleanArchitectureを取り入れてみた - Qiita
  • Kotlin+AndroidでMVP/MVVMとasync/awaitを組み合わせる - Qiita

    はじめに Kotlin 1.1からasync/awaitが解禁されましたが、まだexperimentalなこともあり、実際にアプリで書いたときにどのような使い方をすればよいのかは研究されていない気がしています。 そこで記事では、Androidのプレゼンテーションアーキテクチャではわりと一般的なMVPとMVVMのそれぞれでasync/awaitをどのように使っていけば良いのかの叩き台を提案します。 async/awaitそのものについての記載は省きますので、ご存じない方は拙作ですがこちらの記事を御覧ください。 async style functionとsuspending function 題に入る前に、必要となる知識を1つだけ説明させてください。 Kotlinではコルーチンを定義するための2つの記法が存在します。 1つめがasync style functionで、コルーチンビルダーで

    Kotlin+AndroidでMVP/MVVMとasync/awaitを組み合わせる - Qiita
  • MVC vs. MVP vs. MVVM on Android

    The MVC, MVP, and MVVM Smackdown The best practices approach for organizing Android applications into logical components has evolved over the last few years. The community has largely moved away from the monolithic Model View Controller (MVC) pattern in favor of more modular, testable patterns. Model View Presenter (MVP) & Model View ViewModel (MVVM) are two of the the most widely adopted alternat

    MVC vs. MVP vs. MVVM on Android
  • 10分で振り返るソフトウェアアーキテクチャの歴史2017

    CAMPFIRE iOS #1 - connpass https://yj-meetup.connpass.com/event/51735/ での発表資料です。 (2017/3/23追記): 各所からいただいたフィードバックに基づき、不正確な記述を修正しました。(Nyohoさん、あんざ…

    10分で振り返るソフトウェアアーキテクチャの歴史2017
  • DroidKaigi 2017で発表してきた - ほげほげ(仮)

    MVVMについて話してきました。 このMVVMについて色々と議論はあるかと思いますが、まずはスタートラインに持っていけたかなと思ってます。これを元に色んな方が実践し議論してもっと良い方法を共有してくれるのを期待しています。今日も質問を受けたり議論もあって非常に勉強になりました。もっと改善できるようにこれからも色々模索していきます。 このような発表をすることはこれまでなかったので、かなり緊張してずっと寝不足気味な日々でした。ただ、終わってみるとやってよかった感は半端ないです。色んな人に声をかけてもらえて非常に嬉しかったです。ありがとうございました。 DroidKaigi関係者のみなさんに感謝!そして、相談に乗ってくれたり練習に付き合ってくれたりした同僚に感謝!

    DroidKaigi 2017で発表してきた - ほげほげ(仮)
  • RxJava 2: Android MVVM Lifecycle App Structure with Retrofit 2

    It’s been more than two years since I wrote this post about MVVM, RxJava and Retrofit. It seems a bit old-fashioned to me right now. It’s surprising how much you can learn in one year! You take a look back and you might be embarrassed by your own code. Not only the code itself but also the process of how you get there. All that seems legacy code to me. In this article, I’m going to try to improve

    RxJava 2: Android MVVM Lifecycle App Structure with Retrofit 2
  • Androidの設計と取捨選択 - Konifar's ZATSU

    楽に開発するためにAndroid全体の設計をしたいという思いは、わりとどの開発者も持っている気持ちだと思う。 設計というのは昔から色々揉まれてきて、今はMVPだMVVMだ、DDDだと盛り上がっている。 そもそも、Androidというフレームワークに限定された環境で、わりとよくある実装が多い中で、未だにこれだけたくさんの人が困っているという状態がおかしい。おかしすぎる。そろそろAndroidでこういうの作りたいならこう作るでしょ、みたいなベストプラクティスが確立しているべきじゃないのかという気がする。 あくまで個人的にはだけれども、DataBindingが主流になるのであれば双方向バインディングを使ったMVVMが一番しっくり来る。ただ、MVVMだとViewModelが太ってきてどうすんのみたいなことになるかもしれない。また、通信やキャッシュ部分は別のクラスにわけようとかそういう指針はどちらに

    Androidの設計と取捨選択 - Konifar's ZATSU
  • Model View Whatever + Rx のアンチパターン - Re.Ra.Ku tech blog

    GUIアーキテクチャパターンとしてModel View Whateverを採用した際に、Rxのストリームをプレゼンテーション層からモデル層まで一気通貫でつなげてしまうのはアンチパターンである、という話をします。 前提 GUIアーキテクチャパターンにおける Model View Whatever パターン、とくにMVVMに近いパターンを前提とします。いわゆるサーバサイドの「web系MVC」は前提としません。 Model View WhateverパターンとPDS そもそもGUIアプリケーションでModel View Whateverというアーキテクチャパターンを採用する理由として、PDSの実現があります。このあたりの話は詳しくは実況中継シリーズ Vue.jsで実現するMVVMパターン Fluxアーキテクチャとの距離 - Re.Ra.Ku アドベントカレンダー day 13 - Re.Ra.K

    Model View Whatever + Rx のアンチパターン - Re.Ra.Ku tech blog
    teracy_junk
    teracy_junk 2017/02/21
    『Rxのストリームをプレゼンテーション層からモデル層まで一気通貫でつなげてしまうのはアンチパターンである』ごめんなさい…
  • Androidのプレゼンテーション層アーキテクチャ - Qiita

    はじめに この記事では、筆者の独断と偏見でAndroidのプレゼンテーション層アーキテクチャについて紹介していきます。 感想・つっこみコメント、編集リクエストはWelcomeです。 パターン紹介 パターン1: Smart UI ViewのコードビハインドであるActivityやFragmentに直接ロジックを書くアーキテクチャです。 別名マッチョActivity。 アンチパターンとして有名ですが、条件によっては選択肢に含めるべきです。 具体的には保守が行われないことがわかっているケースです。 数日で使い捨てるアプリに凝ったアーキテクチャは必要でしょうか? スピードが最重要であり、とりあえずプロトタイプが必要な場合でもSmart UIはアンチパターンでしょうか? 答えはケースバイケースです。 メリット 小規模アプリやプロトタイプ程度であれば素早く作ることができる デメリット テスタビリティが

    Androidのプレゼンテーション層アーキテクチャ - Qiita
  • Androidアプリの設計の話 - Re.Ra.Ku アドベントカレンダー day 4 - Re.Ra.Ku tech blog

    Re.Ra.Ku アドベントカレンダー 4日目です。 こんにちは、安部です。Androidアプリを担当しています。初投稿です。 今回はおそらくAndoidアプリ開発者は常に頭を悩ませる問題である、設計の話です。私もずっと試行錯誤を繰り返し、現在進行系で悩んでる問題でもあります。少し見えてきた部分があるので現在の状況を共有したいと思います。 抱えてる問題 Androidアプリ開発していくうえで、よくぶつかる壁です。 ライフサイクル Androidのライフサイクルは複雑でViewの状態をどのように管理すればよいのか難しいです。今はActivityだけではなくFragmentもあるので、更に複雑にしていると思います。 また、画面の回転などの対応を考えたりすると更に大変です。 非同期処理 通信は非同期にしなければいけません。そのためUI側もそれを意識しなければいけなくなり、Viewの状態管理も複雑

    Androidアプリの設計の話 - Re.Ra.Ku アドベントカレンダー day 4 - Re.Ra.Ku tech blog
    teracy_junk
    teracy_junk 2017/02/16
    参考になるわーって最後まで読んで著者で納得した
  • DroidKaigi 2017 公式アプリのコードを公開しました - Konifar's WIP

    去年、DroidKaigi2016の公式アプリをオープンソースで作りましたが、2017もコードを公開しました。 github.com コードだけではわかりにくいところを少し補足しておきます。 2016とは別アプリ 2016とはリポジトリもパッケージも違います。別アプリです。 なぜ去年のリポジトリを引き継がなかったかというと、個人のリポジトリではなくDroidKaigiのリポジトリとして管理したかったというのが1つ。もう1つは、同じアプリをメンテナンスしてると飽きちゃうし、またゼロから作りたかったからです。 余談ですが、カンファレンスアプリに必要な機能はほぼ決まっているので、モデルや画面をガチガチに固めて設定ファイルとリソースを用意するだけで作れるライブラリに切り出してもいいかもなと考えています。 Kotlin メインはKotlinではなくJavaで作っています。コトラーが「Kotlin一択

    DroidKaigi 2017 公式アプリのコードを公開しました - Konifar's WIP
    teracy_junk
    teracy_junk 2017/02/06
    DIとMVVM参考にさせてもらおう
  • Androidの双方向(2-way)DataBinding - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Androidの双方向(2-way)DataBinding - Qiita
  • WPF&MVVM、実際やってみたら印象変わった - Qiita

    はじめに この記事はWinFormsで開発していた人間が、WPFにチャレンジして4ヶ月ぐらい経過した時点での導入前と導入後の雑感です。 未使用ですが、同じくMVVMやXAMLを使うXamarinやUWPにも共通している点があると思います。 WPFを検討している、推進したいが理解が得られない、やってみたけど挫折しそうになっている、といった人の参考になれば幸いです。 良い悪い、ともに現時点で素直に感じたことを書いていますが、私の勉強不足による勘違いもあるかもしれません。 その点に関しては是非ご指摘下さい。 直接の導入のきっかけ 前からWPFにチャレンジしたいとは思っていましたが、導入のきっかけはポジティブなものではありませんでした。 それはある日の昼下がりのことです。 WinFormsで開発したアプリを自前のPCで動作確認後、実際に使用するノートPCで動作させたのです。 すると、見た目が崩れま

    WPF&MVVM、実際やってみたら印象変わった - Qiita
    teracy_junk
    teracy_junk 2016/12/20
    『WinFormsだと見た目が崩れます。それもDPI値によって崩れ方がみな違います』弊社もいつか核地雷踏みぬくんだろうなぁって
  • Everything is a stream, ViewModel is 何? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Everything is a stream, ViewModel is 何? - Qiita
  • Android data bindingを使ってMVVMなアプリを書く - Qiita

    data bindingちゃんと触ったことがなかったので、data bindingを使ったMVVMなアプリを書いてみました。 機能を限定したGitHubクライアントです。よくあるTODOアプリみたいなシンプルなものだと実戦投入したときの詰まりどころがよくわからない気がしたので、以下のような画面を含むそこそこ複雑なアプリにしてみました。 リポジトリの一覧画面と詳細画面があり、それぞれでスターできる。各画面でのスター操作の結果は同期している。 リストビューでサーバーから取得したリポジトリ一覧を表示する。一度取得したリストはSQLiteにキャッシュされ、次回以降はキャッシュから値を取得する ViewPagerで複数のFragmentを表示している。Fragment Aでの操作が、Fragment Bにも影響する。 アーキテクチャ ビューとビューモデルの間はdata bindingによってバインド

    Android data bindingを使ってMVVMなアプリを書く - Qiita
  • 今さら入門するMVVMに必要な技術要素(Xamarin.Forms & UWP) - かずきのBlog@hatena

    Model View ViewModelパターン(以下MVVMパターン)が登場して約10年になります。 ここらへんで一度MVVMを実装するうえで必要になる技術要素を振り返ってみたいと思います。 その前にMVVM MVVMは以下のWikipediaあたりでも見てください。 Model View ViewModel - Wikipedia 見た目と、それ以外にクラスを分離して、さらに見た目をXAMLで作りやすいようにViewとViewModelに分離したようなイメージです。 見ていこう ということでMVVMで必要になる技術要素を見ていこうと思います。 INotifyPropertyChangedインターフェース まずは、これが無いと始まりません。MVVMではViewはViewModelを監視して、ViewModelはModelを監視していることが多いです。その時に、クラスのプロパティが変わった

    今さら入門するMVVMに必要な技術要素(Xamarin.Forms & UWP) - かずきのBlog@hatena
    teracy_junk
    teracy_junk 2016/09/16
    『Model View ViewModelパターン(以下MVVMパターン)が登場して約10年になります』
  • Android Data BindingのObservableListをフィルタリングする! - Qiita

    みじかくまとめ filtered-observable-collectionというライブラリをリリースしました。 Android Data BindingのObservableListをリアルタイムでフィルタリングしてくれます。 ObservableArrayListと異なり、要素がObservableの時にプロパティ変更イベントに追従してくれたりします。 はじめに みなさん、Android Data Bindingしてますか? 私を含め、AndroidでMVVMが出来るということに喜びを感じられた方も多いと思われます。 MVVMがもたらすメリットは色々とありますが、やはり一番の活躍所はリスト表示でしょう。Android Data BindingもObservableListというinterfaceを提供し、RecyclerView等と組み合わせることでJava上のコレクションの変更をビュ

    Android Data BindingのObservableListをフィルタリングする! - Qiita
  • iOS Architecture Patterns

    Don’t miss the iOS Developer Roadmap for 2018! UPD: Slides which I presented at NSLondon available here. Feeling weird while doing MVC in iOS? Have doubts about switching to MVVM? Heard about VIPER, but not sure if it worth it? Keep reading, and you will find answers to questions above, if you don’t — feel free to complain in comments. You are about to structure your knowledge about architectural

    iOS Architecture Patterns