UITableView is the bread and butter of iOS apps. This is as true today as it was with the first iPhone over a decade ago. Back in those early days, developers worked hard to achieve smooth scroll performance — often resorting to extreme measures. For example, to achieve 60FPS on a table view with custom cells on an iPhone 3G you’d often have to draw text directly to a cell’s Core Graphics context,
RxSwift について基本を説明するとき、Observable から話を始めることが多いかと思います。一方で、RxSwift の実際の活用方法としては、データバインディングが大事になってくることが多いようです。 ここでは、まず従来どおりの Observable の話を簡単にしたあと、データバインディングの話をするという形で入門を書いてみます。 RxSwift とは RxSwift は「非同期イベントを受け取るための枠組み」を提供してくれるライブラリです。 UI イベント受け取り Web API レスポンス受け取り データの変化の監視 RxSwift は ReactiveX ファミリーのひとつです。ReactiveX には、C#、Java など様々な言語のライブラリがあります。 コード例 (1) UIButton button.rx.tap .subscribe { [unowned se
iOSアプリ開発のライブラリ選定時に、定番ライブラリが沢山乗っている記事があったら嬉しいな〜と思い、調べて書いてみました。 「他にもこんな良いライブラリがあるよ!」等ありましたら、教えていただけると嬉しいです! GitHubでstarが多かったり、よく名前を耳にするライブラリを集めました ライブラリ名の横にライセンス種別を記載しています。 最新のライセンスではない可能性があるので導入の際は実際にリポジトリのライセンスページをご確認ください。 [2020/03/01 いくつかライブラリを追加しました] [2023/05/16 古い情報を修正しました] Network 迷ったらAlamofireを使えば良いと思います Alamofire[MIT] パパっとネットワーク通信ができるライブラリ Alamofireのメソッド1つでAPIが叩けるので、クセがなくとても使いやすい APIKit[ライセン
いらっしゃいませ! NewsPicks Advent Calendar 2018の13日目を担当する齋藤です! 普段はNewsPicksでiOSエンジニアをやりながら個人でもアプリ開発をしています。 今年は寝る間も惜しんでひたすらiOSを書いていて、6つくらいのアプリに関わりました。 その中で自分が欠かすことのできないライブラリ、使ってみたいライブラリをまとめてみます! 欠かせないシリーズ IBAnimatable これだけでこのレベルのアニメーションを作れるのかと驚いた。。 でも重宝するのはStoryboardやXib上でViewやButtonの角丸だったりを簡単に作れるところでした。 個人開発するアプリでは必ず初めに入れるライブラリのひとつです。 PINRemoteImage SDWebImageの時代は終わったのか、、、と感じるPinterest製の画像キャッシュライブラリ。 SDW
はじめに Xcodeのバージョンも 8になり、社内プロジェクトの方も Swift3化を進めているのですが、色々とトラブっています。特に困っているのが Objective-Cと Swiftが混在する環境でのエラーオブジェクト(NSError、Error)の扱いです。 時間がなくてちゃんと体系的にまとめきれていないのですが、自分自身の問題整理と覚書も兼ねて、現状でわかっていることをまとめてみました。 SwiftのErrorと、Objective-Cの NSError 少し前提を話します。 まず、Swiftの世界ではエラーは Error という抽象的な型(プロトコル)で扱います。このプロトコルは Swift2までは ErrorTypeという名前でしたが、Swift3で Error に名称が変更されました。より一般的な名前が与えられたということですので、役割が昇格したと言えます。 一方、Objec
JavaScript: Past, Present, and Future - NDC Porto 2020
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")
iOS 9で追加されたNSLayoutAnchor使うと簡単にわかりやすく間違えずにNSLayoutConstraint(制約)が作れます【Auto Layout】XcodeiOSAutoLayoutSwiftiOS9 NSLayoutAnchorで制約(NSLayoutConstraint)を作る 『アプリ道場 Advent Calendar 2015』3日目は「三度の飯よりAuto Layoutが好き」(いや…そこまでは無理か…)な、ゆこびん(@yucovin)です。 そもそもイラストレイター兼デザイナーなので、アプリの開発をしていても、見た目の要素をどうやって作るかが一番の感心どころというか触れずにはいられないというか…。 と、いうことで!iOS 9で追加された、簡潔で読みやすくて間違えづらい新しいAuto Layoutのクラス、NSLayoutAnchorについてまとめます。 ※な
引き続きWWDC 2017に参加中のかっくん(@fromkk)です。 今朝聴講した What's New in Foundation というセッションで発表されていたSwift 4からFoundationに採用される Codable プロトコルに感動したので簡単に紹介したいと思います。 定義 プロトコルの定義はこんな感じです。 public protocol Encodable { public func encode(to encoder: Encoder) throws } public protocol Decodable { public init(from decoder: Decoder) throws } public typealias Codable = Decodable & Encodable 前提 この様なデータをダウンロードする事を想定しています。 { "hell
カスタムビューを作っていると、コンテンツに応じてサイズが自動的に変わってほしいことがある。そういう時は、intrinsicContentSizeメソッドをオーバライドする。 例えば、UILabelを拡張してPaddingを設定できるラベルを作る場合を考える。 標準のUILabelは、AutoLayoutが有効な状態では自動的に内部の文字列に応じて大きさが変わる。UILabelには内側余白を指定する機能はないので、これを実現したい場合はカスタムビューを作る必要がある。 class CustomLabel: UILabel { var padding: CGFloat = 0 override func drawTextInRect(rect: CGRect) { let newRect = CGRectInset(rect, padding, padding) super.drawTextI
twitter.com WWDC2016にてATS(App Transport Security)の必須化がアナウンスされました。しかしご存知の通り、必須化は延期されました。また、iOS10で新たなATSの設定を行うInfo.plistのキーが導入されましたが、iOS10のマイナーバージョンごとに仕様が異なります。このLTでは、制度も情報も仕様も混乱しているATSを5分でマスターしていただくことに挑戦します。 忙しい人のためのApp Transport Security 日本語で try! Swift のLive Blogを書いています。 京都から来ました。 京都には日本の文化や歴史を代表するものがたくさんあります。 この一面に金箔が貼られ建物(Pavilion)もその一つです。金閣と言います。 雪の中で輝いていて美しいですね! 実は私の先祖が建てたそうです。 600年前に100億円もかか
if I declare the swift constant as a global constant like: let a = "123" but the a cannot be found in objective c. How to solve this?
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
まえがき 「ビルド待ちすぎて頭おかしくなりそう」 そうやって消耗されてませんか?自分もそうでした。 でも巷にはXcodeでのビルド時間を削減・短縮する様々な方法がシェアされております。 そこで、実際に自分が開発しているProjectに対してそれらの方法をちゃんと適用して、どの程度効果があったかを実測値とともに記しておければと思い執筆しました。 ビルド時間が長くて作業に集中できないよっていう方 よく何%削減とかいうけれど本当に実測値でみても効果あるの?と疑問を抱いている方 の参考になれば幸いです。 本記事でも、改善方法についての解説は行なっておりますが、先人様方の記事の方がより詳細に記されているため、そちらも合わせてご参考にしていただければと思います。同時に、今回の効果測定でも下記記事は大変参考になりました。ありがとうございます @you_matz さん: Xcode8でビルドが遅すぎるのを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く