タグ

ブックマーク / qiita.com/marty-suzuki (5)

  • UIViewControllerの遷移をカスタムアニメーションにする上で注意すべき点 - Qiita

    UIViewControllerの遷移は、UIViewControllerAnimatedTransitioningを使ってカスタマイズするのが、近頃では当たり前になってきています。 その中でもUIViewControllerでpresentViewController()やdismissViewController()とする場合と、UINavigationControllerでpushViewController()やpopViewController()をする場合で、使い方が多少異なります。その異なる部分には内部的にも大きな違いがあり、注意しなければいけない点がいくつかあります。 ここでは違いと注意点、普段見落としがちなプチ情報を書いていこうと思います。遷移周りのアニメーションがカクついたり、メモリが増え続けたりする場合の原因だったりすることも多々あるのでご覧頂けると幸いです。 UIV

    UIViewControllerの遷移をカスタムアニメーションにする上で注意すべき点 - Qiita
  • RxSwiftのshareを利用する際の意外と気づきにくい挙動の違い - Qiita

    はじめに AbemaTV Advent Calendar 2017 5日目の記事です。(5日目過ぎてますが、12/5だけ空いてたので書いてしまいますw) 前日の4日目の記事は@splas_boomerangさんの「Googleが規定する品質要件から見るDaydreamプラットフォームの特徴」で、翌日の6日目の記事は@yasuhideshimizuさんの「VRUI作りにおすすめのsketchplugin『Sketch to VR』」になります。 RxSwiftObservableのHot変換する際に、.share()や.share(replay:scope:)を利用することがあるかと思います。 投稿では、share()を利用する際に意外と気づきにくい挙動の違いについて書いていこうと思います。 利用例 下記のように、NetworkConnectionが.mobileか.wifiかによって

    RxSwiftのshareを利用する際の意外と気づきにくい挙動の違い - Qiita
  • 某RxSwiftを使ったMVVMの記事の改善案 - Qiita

    まずはじめに 11月中旬にリリースされたとある記事が、初心者の方が見たら勘違いしやすい実装が複数紹介されている状態だったので、その実装に対する改善した実装を投稿で紹介していければと思います。 ちなみに、以下の項目が改善の余地があるのではないかと感じた実装になります。 ViewControllerにObservableを加工する処理が入っている ViewModelから流れてきたイベントをViewControllerで加工せず、そのままViewにバインドするだけの実装のほうが良い Viewの操作で、observeOn(Main)またはBinderを利用していない Variableをvarで定義する Variable.valueを変更するが、Variableのインスタンス自体を変更することはほぼないはず VariableはRxSwiftのDeprecated.swiftに実装されているので(S

    某RxSwiftを使ったMVVMの記事の改善案 - Qiita
  • DispatchQueueでthrottle/debounceを実現する - Qiita

    はじめに UITextFieldなどで文字が入力されたときに、その文字列をもとにAPIをたたくことがあると思います。 その際にサーバー負荷なども考慮して、APIを叩く頻度を絞ったりすると思います。 RxSwiftのthrottle/debounceを利用することで、上記のような仕様を満たした実装を容易に実現できますが、プロジェクトに何らかの理由(アプリの容量だったり、サービスの仕様であったり...)でRxSwiftを導入できないこともあるかと思います。 そういった場合、scheduledTimer(timeInterval:target:selector:userInfo:repeats:)などを利用して実装することになると思いますが、timerを管理したり、timerが実行された際にハンドリングするメソッドを実装したりしなければなりません。 そこでDispatchQueueのextens

    DispatchQueueでthrottle/debounceを実現する - Qiita
  • Swift3のGCD周りのまとめ - Qiita

    Swift3でGrand Central Dispatchも大幅に変わっているので、簡単にまとめました。 dispatch_queue concurrent queue(実行スレッドは複数で同時に複数タスク)やserial queue(実行スレッドは1つでタスクごとに違うスレッドで実行される可能性はあるが、同時に1タスク)の生成は、以下のように行います。 // concurrent queue let concurrentQueue = DispatchQueue(label: "com.example.concurrent-queue", attributes: .concurrent) // serial queue let serialQueue = DispatchQueue(label: "com.example.serial-queue")

    Swift3のGCD周りのまとめ - Qiita
  • 1