タグ

swiftに関するkohkimakimotoのブックマーク (37)

  • 新しいアプリを作るときによく使うSwift Extension集 - ZOZO TECH BLOG

    iOSエンジニアの庄司 (@WorldDownTown) です。 最近、業務で新しいiOSアプリを立て続けにいくつか開発する機会に恵まれました。 そんな中、いくつもアプリを使っていると、どのアプリでもよく使う処理があぶり出されてきます。 そういう処理はSwiftのExtensionとして別ファイルに書き出し、他のアプリへも切り出しやすいように個別のFrameworkにして管理しています。 Frameworkの管理については過去のこちらの記事を参考にしてみてください。 今記事では、最近の開発でよく使ったExtension集をご紹介します。 Swift標準ライブラリ Date private let formatter: DateFormatter = { let formatter: DateFormatter = DateFormatter() formatter.timeZone = N

    新しいアプリを作るときによく使うSwift Extension集 - ZOZO TECH BLOG
  • 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で双方向データバインディング - Qiita

    FunctionalReactiveProgramming(FRP)の勉強中です。 まだ正直なところ『なるほど,分からん』という状態ですが RxSwiftをおっかなびっくり触ってみた結果を整理しようと思います。 (触ってみたら動いたレベルなので他に良い使い方があるかも......です) 1. RxSwiftとは? ReactiveX(Reactive Extension)という,FRPを実現するためのライブラリのSwift実装です。 Swift実装以外にもJavaScriptJava,C#など様々な言語で実装されたライブラリがあるようです。 (AndroidだとRxAndroidとかあるみたいですね) RxSwift 2. どんなことが出来るの? 分かりやすいポイント(というか自分が現状で理解できた範囲では) 「データバインド」と「Promiseパターン」を簡単に実現できるようになります

    RxSwiftで双方向データバインディング - Qiita
  • Swiftのプロトコル | プロトコル拡張

    Extensionとプロトコルを組み合わせると、大きく分けて2通りの拡張が可能です。1つはプロトコルを採用しつつ既存の型を拡張する方法、もう1つはプロトコル自身を拡張する方法です。前者は拡張する対象が異なる型になりますが、後者は自分自身を拡Extensionとプロトコルを組み合わせると、大きく分けて2通りの拡張が可能です。1つはプロトコルを採用しつつ既存の型を拡張する方法、もう1つはプロトコル自身を拡張する方法です。前者は拡張する対象が異なる型になりますが、後者は自分自身を拡張することになります。後者の自分自身を拡張する方法を、プロトコル拡張(protocol extensions)と呼びます。 ここでは、まずextensionを使ったプロトコル準拠に関して詳しく説明します。それに関連して、プロトコル型のコレクションについて簡単に触れます。次にプロトコル継承について紹介した後に、プロトコル

  • 使うと手放せなくなるSwift Extension集 (Swift2版) - Qiita

    2016/8/15更新 汎用性高めのExtension集です。後半にライブラリもまとめました。 Swift2.2で確認済みです。 紹介している全てのextensionを導入したリポジトリを公開しています(紹介していないものも含みます)。 詳しくは下記をご覧ください。 iOSアプリをハッカソンで作るときに便利な初期プロジェクトを作ってみた Swift3版はこちらです。 クラス名の取得 extension NSObject { class var className: String { return String(self) } var className: String { return self.dynamicType.className } }

    使うと手放せなくなるSwift Extension集 (Swift2版) - Qiita
  • RxSwift勉強会@Sansan まとめ - Qiita

    RxSwift勉強会@Sansan に、はじめて「ブログまとめ枠」として参加しましたので、だいぶ遅くなって申し訳ございませんがまとめたもの公開します。 以下すでに先行して他の方がまとめたもの http://matome.naver.jp/odai/2146067615056021001 https://blog.ppen.info/wp/?p=357 http://blog.mogmet.com/rxswift-sansan/ またRxSwiftの予習が足りず、誤りがある場合はよしなに編集リクエストいただけると嬉しいです RxSwiftをプロダクトに導入してみた話 @kazu0620 Eightに導入した話 「さわったことある人、挙手」で参加者のうち多くの人が手を挙げていた模様(席の都合上良く見えなかった) 宣言的に記述できる => 「こういうものが流れてきて、こういう処理をする」というこ

    RxSwift勉強会@Sansan まとめ - Qiita
  • オブザーバーパターンから始めるRxSwift入門 - Qiita

    はじめに Rx とは C# 発祥の Reactive Extensions のことで、様々な言語に移植されています。RxSwift は Rx の Swift 版です。 様々な言語に移植されているのは、それだけ有用だからです。しかし Rx は有用である一方で学習コストが高く、導入の敷居が高いとみなされがちです。 ネットで Rx について検索すると、Reactive とは・・・関数指向うんたら・・・と、そりゃオブジェクト指向プログラマにはとっつきにくそうに感じるわな、と思うものが多いです。 ここではオブジェクト指向設計で一般的に利用されるオブザーバーパターンを置き換えるところから、Rx の利用方法を解説してみます。 以下のようにシリーズになっていますが、この記事の内容だけでも十分役に立つと思います。 オブザーバーパターンから始めるRxSwift入門 RxSwift入門(2) 非同期処理してみる

    オブザーバーパターンから始めるRxSwift入門 - Qiita
  • Swiftのクラスと構造体の使い分けについてのメモ - Qiita

    上記の中で特に意識すべきところは、 変数に入れるときに「参照型/値型」のどちらになるか。 クラスは、参照型なので、参照を渡すだけだが、 構造体は常にコピーを渡す。 構造体を使うパターン 小さくて単純なデータをカプセル化をしたい場合 参照渡しより値渡し(コピー)がいい場合 継承が必要ない場合 構造体を避けた方がいいパターン データが大きい プロパティが多い 理由としては、以下の2つ 構造体は変数にセットする度にコピーされるため、データが大きいと処理時間が遅くなる 構造体はスタック領域に確保されるため、データが大きいと溢れる可能性が高くなる なので、APIDBの取得データなどは構造体ではなく、クラスで作成したほうがよさそう 結論としては、 プロパティが数個のもので、カプセル化させると扱いやすいケース メソッドはそのデータの加工を行うような場合に実装する 例えば・・・ イベントの開催日時と終了

    Swiftのクラスと構造体の使い分けについてのメモ - Qiita
  • [Swift] 様々なReactive Swiftで同じサンプルを作ってみた (RxSwift, ReSwift, SwiftBond編) - Qiita

    概要 近頃、ReactiveのSwiftライブラリが沢山登場しています。 全部勉強してみて肌感掴んでおこうと思い、 下記の機能で同じアプリを作ってみて比較してみようと思いました。 https://github.com/naoto0822/try-reactive-swift 機能 APIリクエスト UITableViewで表示 引っ張って更新 (UIrefreshControl) スクロールでページング タップで詳細画面表示(SFSafariViewController) 今回は下記の3つでそれぞれ作ってみます。 RxSwift ReSwift SwiftBond Githubに公開してあります。 書き方がおかしかったり、上の機能が網羅できてないprojもあるので、ぜひPRお願いします。 https://github.com/naoto0822/try-reactive-swift それぞ

    [Swift] 様々なReactive Swiftで同じサンプルを作ってみた (RxSwift, ReSwift, SwiftBond編) - Qiita
  • RxSwift触ってみた - Qiita

    先週メルカリのグループ会社ソウゾウがリリースした「アッテ」の開発の裏側を聞けるatte FeS【GoSwift開発編】に行ってきました。 その際の発表資料がこちらで公開されており、その中でもSwiftとRxSwiftの内容を聞いてRxSwiftに興味を持ったので今更ですが入門してみました。 RxSwiftとは ReactiveX(Reactive Extensions)のSwift実装です。他にもRxJavaやRxJSなど各言語や各プラットフォーム用のRxがあります。 ReacitveXというのは ReactiveX is a library for composing asynchronous and event-based programs by using observable sequences. らしいです。 observableのシークエンスを使って非同期でイベントベースのプ

    RxSwift触ってみた - Qiita
  • iOSアプリ開発で簡単に実装できるSwiftのおすすめライブラリ15選|TechClips[テッククリップス]

    iOS開発をしているエンジニアの方であれば、今はもうObjective-CではなくSwiftを使っているという方も珍しくありません。比較的、新しい言語ながらそれほどアプリ開発者にとってはスタンダードになりつつある言語の一つ。 やはりSwiftの魅力はなんといっても、ライブラリを使った拡張性の高さです。わざわざ機能を一から開発せずとも、気軽に取り入れられるのは機能性を拡充するだけでなく、開発の効率化にも繋がる重要なポイントと言えます。 記事では、そんなSwiftのライブラリの中から15個をご紹介。ぜひ、iOS開発をされているエンジニアの方は参考にしてみてください! iOS開発で便利なSwiftのライブラリ15選 MaterialKit https://github.com/nghialv/MaterialKit マテリアルデザインがキットになったライブラリです。トレンドでもあるマテリアルデ

    iOSアプリ開発で簡単に実装できるSwiftのおすすめライブラリ15選|TechClips[テッククリップス]
  • Swiftコーディング規約@Wantedly - Qiita

    はじめに Swiftのコードは多様な記述の仕方ができるので柔軟でかつ表現力もありますが、チームで開発を行うとどうしても記述の仕方が統一できず可読性も上がりません。弊社(Wantedly)でSwiftのアプリを開発した経験をもとにアプリ開発におけるコーディングスタイルガイドを作成しました。このコーディング規約がベストプラクティスだというわけではなく、Swiftもまだまだ手探りなところもあるので、参考情報としてご参照ください。また、規約の範疇ではないですがエラーになりやすい記述も合わせてフォローしています。 バージョン v0.3 改版履歴は文末を参照ください。 コーディング規約の必要性について Swiftはプログラマがリスクを取ることによってより簡素に端的に記述ができたり、型推論が強力なので型の明記を省略して記述ができます。チームでSwift開発を行う場合は、詳細に記述するのか、省略して記述す

    Swiftコーディング規約@Wantedly - Qiita
  • Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift

    Swift 3 は、ガイドラインを知っておくと変化がとっても掴みやすくなる印象。そう思って、そんな辺りについてざっくり見渡せるように資料にまとめておくことにしました。Read less

    Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
  • Swift2で作るコマンドラインツール - クックパッド開発者ブログ

    会員事業部の三木(@giginet)です。 この記事では、業務改善のために開発者向けのツールをSwiftで開発してみたため、その知見についてお伝えしたいと思います。 なお、この記事はXcode7.1上でSwift2.1を使った開発を前提としています。 作ったもの クックパッドiOSアプリでは開発の際に、新しい機能を実装したり、インターフェイスを改善したあとにiOSシミュレーターの動画を撮影しPull Requestに貼り付けています。 動画を撮影する際には、汎用的にスクリーンキャストを撮影する社内ツールを使っていたのですが、使いづらい面も多かったため、 簡単にiOSシミュレーターの操作をアニメーションgifとして記録したいという需要がありました。 そのため、空き時間を使って、簡単なユーティリティを実装しました。 なぜSwiftで作るのか 今回は、OS Xの開発用SDKであるCocoaを使い

    Swift2で作るコマンドラインツール - クックパッド開発者ブログ
  • ローディング時のズルい進捗表示

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

    ローディング時のズルい進捗表示
  • Sync iOS開発の舞台裏 // Speaker Deck

    Realm meetup #6 で発表した Sync iOS開発の舞台裏についてです プロジェクトの話や、MVVM、ViewBindingなど多義にわたり解説しています

    Sync iOS開発の舞台裏 // Speaker Deck
  • Swift での Class 取得メソッド - ObjecTips

    Objective-C で NSObject の Class を取得するには class (クラスメソッドとインスタンスメソッド) classForCorder (インスタンスメソッド) classForKeyedArchiver (インスタンスメソッド) classForKeyedUnarchiver (クラスメソッド) などのメソッドがある。 Swift では返り値の型は AnyClass で classForCoder (インスタンスメソッド) classForKeyedArchiver (インスタンスメソッド) classForKeyedUnarchiver (クラスメソッド) これらのメソッドしか存在しない。 Objective-C の class にあたるクラス取得方法には2通りあって + (Class)class にあたるのがクラスに対する self で - (Class)c

    Swift での Class 取得メソッド - ObjecTips
  • SwiftとObjective-Cの相互利用する際の注意 - Qiita

    とりあえずObjCとswiftを相互利用する時にいくつかハマったので書きたいと思います。 ちゃんとここ読んでいればわかることなんですが https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/ Swiftの中でObjective-Cのクラスを使う SwiftプロジェクトでObjCのファイルを追加しようとするとXcodeがダイアログを出し、 プロジェクトの設定を変更してSwiftとObjC間の連携ができるようにしてくれます。 具体的に以下の様な設定変更をします。 プロジェクトに <# ProductName #>-Bridging-Header.h という名前のファイルを追加 Build SettingsのObjective-C Bridging

    SwiftとObjective-Cの相互利用する際の注意 - Qiita
  • 【Swift】iOS アプリ開発で使えるオススメのオープンソースライブラリまとめ

    Swift で使えるオープンソースライブラリ 2014年は新言語 Swift が登場し、iOS アプリ開発者にとってはかなり印象深い年になったのではないでしょうか。Swift の登場以後、さまざまな取り組みが iOS アプリ開発者の中で行われ、その結果の1つとしてオープンソースライブラリもかなり増えました。 Swift で一から書かれたものもあれば、既存のものを Swift でも使えるようにアップデートしてくれているものもあります。ある意味、混沌としている現状では「じゃあいまから Swift で iOS アプリ開発するときに何を使えば良いの!?」といったことになりかねません。ということで、現在までに公開されている Swift で使えるオープンソースライブラリを目的別にまとめてみました。 Swift アドベントカレンダーのために書いた記事なので、タイトルには「Swift 時代の」としています

    【Swift】iOS アプリ開発で使えるオススメのオープンソースライブラリまとめ
  • SwiftでCocoaPodsを使い始めようとしてハマったことメモ - Qiita

    $ sudo gem install cocoapods --pre $ pod --version 0.36.0.beta.2 特に問題なし Podfile 生成 CocoaPodsの記事だと手書きで書き始めてる風なところ、一応コマンドで生成させる。ターゲットごとのセクションとかつけて生成されるのでそっちに合わせる。 source や platform の部分を修正 $ pod init $ vi Podfile source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' target 'XXXXX' do end target 'XXXXXTests' do end

    SwiftでCocoaPodsを使い始めようとしてハマったことメモ - Qiita