タグ

swiftに関するgothedistanceのブックマーク (43)

  • iOSでタブデザインを実現するXLPagerTabStripが素晴らしい - アニマネ開発日誌

    よくある横スワイプで移動できるタブデザイン。 Androidは標準のUIライブラリに含まれていますが、iOSの場合は自作かライブラリを使うかのどちらかになります。 アニメアプリのアニマネ!ではいくつかのライブラリを比較した結果、RMPScrollingMenuBarControllerを採用しました。 当時の状況ではベストだと思っていたのですが、新しくとても良いライブラリを見つけました。 Xmartlabsというウルグアイの会社が作っています。 Githubのスターが2,231件(2016年3月現在)とかなりの人気ライブラリです。 アニマネで実装した時に見つけていればこちらを採用していたのに。。。 軽く触っただけですがこのライブラリは凄いと思ったので紹介してみます。 XLPagerTabStripの特徴 Swift製 活発に開発されている安心感(2016年3月現在) 豊富な表示方法 既存の

    iOSでタブデザインを実現するXLPagerTabStripが素晴らしい - アニマネ開発日誌
  • Protocol Extensionsのwhere句を使ってTraitを実現し、BaseViewControllerを排除する

    iOSアプリの開発において共通処理をBaseViewController(仮)のような親クラスに定義して、 各画面はこの親クラスを継承するといった実装がわりとあるかなと思います。 このような実装の場合、BaseViewControllerが肥大化して、見通しの悪い設計になりがちです。 また、独自フレームワークのような実装になってしまう傾向があり、 チーム開発においては、メンバーの学習コストが上がるなどのデメリットがあります。 その一方、各viewControllerに共通で入れたい処理というのはあるので、 そういった場合は、Protocol ExtensionsのWhere句を利用してTraitを実現するといいなと考えています。 例えば、UIActivityViewControllerを使って、データを共有する処理を共通化する場合 BaseViewControllerを利用した実装は下記の

    gothedistance
    gothedistance 2017/01/12
    BaseViewControllerでやってました。実装者は僕だけなんでいいかな・・なんて思っててすいませんでした。
  • iOSアプリ開発が捗る!ライブラリを探すときに便利なサイトまとめ

    労力をあまりかけずにアプリを開発したり、クオリティの高い UI を実現したりするためには、ライブラリは欠かすことができないものです。iOS アプリを開発するときにも、ライブラリを使用することがよくあると思います。 この記事では、iOS のライブラリを探すときに気をつけていることと、探すときに便利なサイトを紹介します。 ライブラリを探すときの2つのポイント ライブラリを探すときに、最低限これだけは押さえておきたい項目を2つ紹介します。 評価 これは Github についている Star や Watch の数で判断しています。やはりこれらの数の多いライブラリの方が、拡張性が高くバグが少ないものが多いです。しかし、新しくリリースされたライブラリなどはこれに当てはまらないので、注意してください。 最終更新日 2、3年前のライブラリだと ARC に対応していなかったり、新しい iOS のバージョンに

    iOSアプリ開発が捗る!ライブラリを探すときに便利なサイトまとめ
  • RxSwiftをやめてReactiveKitに乗り換えた話 – りばーす.swift

    どうも、最近仕事でも個人でも、Swiftで大規模なアプリ開発をしていない @rb_de0 です。 個人で開発しているアプリ「 Limentor 」にて、ベース部分にRxSwiftを使っていたのですが、つい最近になってReactiveKitに乗り換えました。 RxSwiftは、Swift界隈では言わずと知れたライブラリで、MVVMパターン(のようなもの)を簡単に実装できます。似たようなライブラリでSwiftBondReactKitなどがあります。 アプリを開発し始めた当初は、プロパティのバインディングが1行で実装できるSwiftBondを使っていたのですが、APIリクエストのフローを1回でやりたいなと思い、イベントの種類が存在するRxSwiftに移行したんですよね。 移行したのはいいがバインディングが面倒くさかった。。。 そこで登場したのが「ReactiveKit」です(ReactKit

  • SwiftでTumblrのリアクションみたいにモーダルウィンドウがにゅっと出るやつを作る - pixiv inside [archive]

    この記事は ピクシブ株式会社 Advent Calendar 2015 16日目の記事です。 qiita.com 昨日は、id:catatsuyの ピクシブ社内広告サーバーに新機能を追加するためにボクがやったこと - pixiv inside でした! どうもどうも、エンジニアのid:FromAtomです。pixiv SketchというサービスのiOSアプリデベロッパーをしております。 いろんなイベントで話をするたびに「当に新卒ですか?」「3年目ぐらいの貫禄がある。」と言われますが新卒です。よろしくお願いいたします。 さて、今日は『SwiftでTumblrのリアクションみたいにモーダルウィンドウがにゅっと出るやつを作る』方法を紹介します。 文字で読むと「なんのこっちゃ?」という感じだと思うので、まずはこちらを御覧ください。 TumblrのiOSアプリでは、このようにリアクションをタップす

    SwiftでTumblrのリアクションみたいにモーダルウィンドウがにゅっと出るやつを作る - pixiv inside [archive]
  • Simplifying Login with Swift Enums

    About the content This content has been published here with the express permission of the author. Apps with only one login method limit user options and often lead to negative reviews, but with multiple login options comes great complexity. By using Swift enums, David East demonstrates how we can easily abstract it away to keep our view controllers and login logic clean and simple. Join him in thi

    Simplifying Login with Swift Enums
    gothedistance
    gothedistance 2016/01/30
    勉強になるンゴねぇ...
  • オシャレなアラートを使用できる「SweetAlert-iOS」の使い方 - Qiita

    SweetAlert().showAlert("Are you sure?", subTitle: "削除してもよろしいですか?", style: AlertStyle.Warning, buttonTitle:"いいえ", buttonColor:UIColor.redColor() , otherButtonTitle: "はい", otherButtonColor:UIColor.redColor()) { (isOtherButton) -> Void in if isOtherButton == true { //「いいえ」を選択した時の処理 } else { //「はい」を選択した時の処理 SweetAlert().showAlert("成功!", subTitle: "削除が成功しました!", style: AlertStyle.Success) } } SweetAlert

    オシャレなアラートを使用できる「SweetAlert-iOS」の使い方 - Qiita
  • Swiftを使ってモダンなWeb APIクライアントを爆速で開発する - Qiita

    iOS Advent Calendarの13日目を担当します@giginetです。 APIクライアントを作りたいなあと言う気概になったので、APIクライアントをライブラリ化するまでの方法をご紹介します。 なお、この記事は執筆時点の最新の環境で検証しています。 Xcode7.2 Swift 2.1.1 Carthage 0.11.0 今回使用するAPI 今回は、APIクライアントが見当たらなかったので、WakaTimeという、エディタからデータを送り、自分のプログラミングについてのデータを集積してくれるサービスのAPIクライアントを作って、自分の1週間のコーディングを管理できるようにしてみました。 完全自動で、自分のプログラミング「作業ログ」を収集して可視化する「WakaTime」が素晴らしい件! | シェアしたくなる最新のWebサービスITニュース情報をチェック! APPGIGA!!(ア

    Swiftを使ってモダンなWeb APIクライアントを爆速で開発する - Qiita
  • UITableViewのUX改善(今すぐ出来る!) - Qiita

    はじめに deselectRowAtIndexPath(indexPath: NSIndexPath, animated: Bool) UITableView上にあるセルの選択状態を解除するときに使うメソッドですが、 呼び場所を替えるだけでUXを大幅に改善することが出来ます。 経緯 アプリによってはセル押下後に画面遷移するにもかかわらず、 押下直後にdeselectRowAtIndexPathを呼ぶような挙動になっていたりします。 これは悪いことではないですが、画面遷移から戻ってきた時に セルの選択状態を解除してあげたほうがどのセルを押したのか ユーザーに視覚的に伝えることが出来るのでUX的に良いと思ったからです。 例 セル押下直後に解除 この方法だとどのセルを押したのかをユーザーは思い出さなければいけません。 遷移から戻ってきた時に解除 こちらはどのセルを押したのか視覚からはっきりと分か

    UITableViewのUX改善(今すぐ出来る!) - Qiita
    gothedistance
    gothedistance 2015/11/09
    なるほど…‼︎
  • iOS - Auto Layoutの設計ベストプラクティスと、Viewの種類ごとのテクニック集 - Qiita

    Auto Layoutを使って既存アプリをiPhone 6(S)/6(S) Plus対応した際に得た知見をまとめてみました。 以下、上級編となります。 ※iOS 9で導入されたStack ViewについてはiOS 8を切れない事情で使えませんでしたorz... ※下記のサンプルに使用したStoryboardファイルはこちらです。 https://gist.github.com/ypresto/ee3b2f592b40936c11ec ※設計が悪くて画面サイズ変わるとぶっ壊れちゃう箇所をUnit Testで把握するライブラリ書きました https://github.com/ypresto/AutoLayoutLint http://qiita.com/yuya_presto/items/742a9e6dd95667bd62c9 詳解編 Auto Layoutの仕組みやPriority、Int

    iOS - Auto Layoutの設計ベストプラクティスと、Viewの種類ごとのテクニック集 - Qiita
  • MVVM in Swift - Artsy Engineering

    Model View ViewModel has become the default way I write apps on iOS – it makes writing iOS apps a joy. I’ve written about it again and again and oh my. But last Autumn, as our team was all-hands-on-deck to wrap up the auctions kiosk app, we chose not to use MVVM. Why not? We were building a new app in a new language using a non-Swift framework for functional reactive programming. I was also teachi

    MVVM in Swift - Artsy Engineering
  • Let's Play: Refactor the Mega Controller!

    About the content This content has been published here with the express permission of the author. So you’ve got a huge view controller that knows about everything. It’s become a puppeteer mastermind whose responsibilities have somehow grown to simultaneously encompass disk I/O and navigation bar styling. Andy Matuschak live codes solutions to reduce the size of the beast, and refactors out its res

    Let's Play: Refactor the Mega Controller!
  • GitHub - bricklife/ReactKit-APIKit-Himotoki-sample: Incremental search sample created using ReactKit, APIKit and Himotoki

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - bricklife/ReactKit-APIKit-Himotoki-sample: Incremental search sample created using ReactKit, APIKit and Himotoki
  • ローディング時のズルい進捗表示

    今開発中のPlayer!のログイン・登録画面で、こんな進捗表示をしていますが、これ実はフェイクだったりします( ´・‿・`) (Qiitaの画像サイズ制限が厳しくて粗いです。キレイなものは実際にアプリダウンロードしてご覧下さい。) 経緯 元々、この画面はこういう進捗表示では無く、単にインジケーターがクルクルするだけで、進捗状態が分からないものでした。 特にネットワークが悪いところだと、バグって固まってしまったのでは?とユーザーを不安にさせるようで、たまにそういう声を聞くことがありました。 登録フローは大事なところなので、そういうところでこれが原因で離脱してしまうと残念なので、改善が必要でした。 そこで、ネットワーク処理にもたつきつつもちゃんと正常に処理をしているということを示すために、進捗を表示することにしました。 ただ、例えば大きな画像などメディアファイルダウンロードなどならともかく、こ

    ローディング時のズルい進捗表示
  • AutoLayoutとうまく付き合うコツ - NSBlogger

    AutoLayoutと仲良くなった ぜんぜん言うこと聞かないからAutoLayout大嫌いだったんですが、接し方を変えたら言うこと聞くようになったので、そのコツを紹介します。 AutoLayoutにふりまわされないように AutoLayoutを使うと、色んな画面サイズに柔軟に対応することができます。今まではAutoresizingmaskを使っていましたが、AutoLayoutが主流になりつつあるので、積極的に使っていきたいです。 しかし、AutoLayoutを初めて触ったとき、なんで思い通りにならないんだ!と何度も悔しい思いをしたことがあります。挙句の果てには、見返してもよくわからない制約がいろんな場所についてしまって、しぶしぶ「Use AutoLayout」のチェックをはずしてリセットすることもありました。 初歩的なことですが、以下で紹介することを念頭においてAutoLayoutを設定

    AutoLayoutとうまく付き合うコツ - NSBlogger
  • Left side menu (Navigation Drawer) example with Swift - Swift Developer Blog

    In this video I am going to show you how to create a left side navigation menu which is also some times called “Navigation Drawer”. Navigation drawer is a very popular design pattern used in modern mobile apps and I am sure you have come across so many times. Navigation drawer is a panel that transitions in from the left edge of the screen and displays the app’s main navigation options. User can b

  • RxSwiftを用いたシンプルなHTTPクライアントの実装例 | 53ningen.com

    Alamofire.Manager class Scheduler { let backgroundWorkScheduler: ImmediateScheduler let mainScheduler: SerialDispatchQueueScheduler init() { let operationQueue = NSOperationQueue() operationQueue.maxConcurrentOperationCount = MangaContext.MAX_CONCURRENT_OPERATION_COUNT operationQueue.qualityOfService = NSQualityOfService.UserInitiated backgroundWorkScheduler = OperationQueueScheduler(operationQue

  • iOSの開発でお気に入りのライブラリN選 - Qiita

    殿堂入り Realm Core Dataなんて最後に使ったのはいつだろうか。。。 Alamofire SwiftyJSON 通信ライブラリAlamofireのブロック構文に、JSONをより扱いやすくするSwiftyJSONをぶっこむ。 最近SwiftyJSONの仕様が変わってイマイチになったが、Swiftバージョン2.0でguard構文が追加されるので、guardで宣言するときに使いやすくなるかも。 SDWebImage みんな知ってる画像キャッシュライブラリ。 UI paper switch スイッチのON/OFFで色をアニメーション付きで変更する。 SCLAlertView フラットなアラート LTMorphingLabel 文字をモーフィング(アニメーション)させる MMPopLabel ポップラベル。Slackの立ちあげ時とかに出てくるアプリケーションのチュートリアルとかに使う。(

    iOSの開発でお気に入りのライブラリN選 - Qiita
  • Error Handling in Swift 2.0 - Big Nerd Ranch

    When Apple announced Swift 2.0 at this year’s WWDC, Swift’s main architect, Chris Lattner, indicated that the 2.0 update to the language focused on three main areas: fundamentals, safety and beautiful code. Out of the list of new features, improvements, polishes and beautifications, one that may impact your Swift 1.x code the most is error handling. That’s because you cannot opt out of it. You mus

  • Swift 2.0: Protocol-Oriented MVVM

    Posted on August 17th, 2015 UPDATE: Read this instead for the most up-to-date implementation. Ever since the mind-blowing Protocol-Oriented Programming in Swift WWDC Session, I’ve been thinking a lot about using protocols. But in reality, I haven’t really been using them as much. I’m still digesting what protocol-oriented programming means, and where in my code I should be using it instead of my o

    Swift 2.0: Protocol-Oriented MVVM