タグ

swiftに関するnabeatsu1のブックマーク (134)

  • Swift4のKVOに感動した。 - Qiita

    こうすると後からvalueの値の変更を監視することができます。 Swift3.0のKVO SwiftにはObjC時代から続くKVOの機能があります。 Swift3.0までを例に、WKWebViewのestimatedProgressの値を監視しようとすると こんな感じ class ViewController: UIViewController{ var webView: WKWebView //中略 override func viewDidLoad(){ //webViewにObserverを追加 webView.addObserver(self, forKeyPath:"estimatedProgress", options:.new, context:nil) } //NSObjectのもつメソッドを継承 override func observeValueForKeyPath(k

    Swift4のKVOに感動した。 - Qiita
  • iOSアプリの継続課金コンテンツに無料トライアル機能を導入する方法 - ZOZO TECH BLOG

    こんにちは! 最近暑いのでビール最高と感じている新事業創造部バックエンドエンジニアのりほやんです。 今回はAppleが提供しているお試し価格の機能のひとつである無料トライアル機能を紹介します。 お試し価格とは お試し価格とは自動更新の定期購読に対して割引価格を設定したり、定期購読の開始時に一定の無料トライアル期間を設けることができる機能です。 お試し価格には都度払い、前払い、無料トライアルの3種類があります。 お試し価格はユーザーにとって、有料会員の体験ができるとても便利な機能です。 しかし公式ドキュメント以外の資料が少なく実装に何点か困ったことがありました。 そこで今回はお試し価格の無料トライアル機能を導入する方法についてご紹介します。 この記事が無料トライアルを導入しようか悩んでいる方、実際に無料トライアルを導入する方のお役に立てば幸いです。 記事では、課金機能自体の実装の説明は行い

    iOSアプリの継続課金コンテンツに無料トライアル機能を導入する方法 - ZOZO TECH BLOG
  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

    Blogger
  • iOS 11で大幅に強化されたMapKit - Qiita

    記事は、一般に公開されている情報を元に作成しています。記事中の画像はWWDCのスライドのものを引用させて頂いております WWDC 2017 で発表された iOS 11 では MapKit も色々と強化されています。以下にその内容をまとめます。 Map Type に .mutedStandard 追加 MKMapType に mutedStandard が追加されました。 標準のマップアプリで言う「交通機関」のような見た目になるようです。 コンパス、スケールバーなどがコントロール可能に 新たに3つのクラスが追加されました。 MKUserTrackingButton MKCompassButton MKScaleView MKUserTrackingButton トラッキングモード(現在値を追従)に切り替えるボタンです。 使用例: let button = MKUserTrackingBu

    iOS 11で大幅に強化されたMapKit - Qiita
  • https://virusee.net/swift4-move-view/

    https://virusee.net/swift4-move-view/
  • 暗黙的アンラップ型(Implicitly Unwrapped Optional)をいつ使うべきか? - Qiita

    仕事Swiftのコードをよくレビューするのですが、どうやら暗黙的アンラップ型(Implicity Unwrapped Optional)をいつ使うべきか迷う方が多いようです。 以下、文中では「暗黙的アンラップ型」で表記を統一します。また、Optional.Noneはnilという表現で統一します。説明を簡潔にするために一部正確でない表現をしている箇所があります。 復習 暗黙的アンラップ型は、 Optional型だけれど、アクセスするときには明示的なアンラップがいらない(強制的にアンラップされる)型 です。 以下のように!を型の後ろにつけて宣言します。

    暗黙的アンラップ型(Implicitly Unwrapped Optional)をいつ使うべきか? - Qiita
  • SwiftでProtocolの利用方法を盛大に勘違いしていた話 - Qiita

    iOS界隈では少し前に設計に関する議論がとても活発だった時期がありました。 Clean ArchitectureやVIPER、MVVM、MVPなどなどですね。 所属している会社ではそういう設計を取り入れる事は無く、あくまでもMVCでやり続けるという表明をしたりしていたのですが、個人的になんかもやもやしていたので、少しずつ興味がある所から調べたりしていました。 そんな中でこれまでprotocolの利用法を大きく勘違いしていた事が判明したので共有したいと思います。 大きく勘違いしていた事 どのアーキテクチャでも言われてる事として、役割の細分化があります。 大抵細かく役割を切って、それぞれの役割をprotocolでやり取りするといった説明があるかと思います。 ここで僕の勘違いしていた事が「ふむふむ、とりあえずprotocol作って分割させればええんやな」と思っていた事です。 とりあえず View

    SwiftでProtocolの利用方法を盛大に勘違いしていた話 - Qiita
  • UIStackViewの5つのdistributionを理解する - Qiita

    iOS 9から導入されたUIStackViewは、複雑になりがちなレイアウトを簡単に組むことができます。 導入から3年近くたった今、すでに使ったことのあるエンジニアさんも多くいらっしゃるのでないでしょうか。 しかし、使ってみると案外うまく使えなかったり、コンフリクトに遭遇してしまうことがありました。 そこで、UIStackViewの中でも最も重要なプロパティのdistributionについて調べた結果をまとめました。 この記事の内容 この記事では、5種類のあるUIStackViewDistributionの全てでレイアウト例を示し、そのレイアウトがどのような制約によって成り立っているか解説します。 注意して書いたつもりですが、もし内容に間違いや不備があればご指摘よろしくおねがいします .fill まずは、最も基の.fillでのレイアウト例を確認してみましょう。 各プロパティは以下のように

    UIStackViewの5つのdistributionを理解する - Qiita
  • iOSアプリを作るときのおすすめ構成

    高性能なMacマシンを確保まず、技術的なこと抜きに一定以上の性能のMacマシンを用意するのが良いです。取っ掛かりの勉強目的などならともかく、中規模以上のアプリを作る場合低スペックマシンでは著しく非効率です。 大体以下のようなイメージで、これ未満だと早めにマシン変えた方が幸せになれると思っています。 2–3年以内に買った20万円以上程度のMacBook Pro: 許容範囲iMac 5K: 良い感じiMac Pro: 一般的なiOSアプリ開発ではオーバースペック気味でコスパは微妙かも🤔会社で、交渉しても低スペック環境を強いられるのならば転職した方が良い気がしています🤔ちなみに転職ドラフトでSWHGという招待コードで登録するとお互いプロテインゲットできるので、気が向いたらお願いします( ´・‿・`) Continuous Integration(CI)環境次に、CI環境について触れます。CI

    iOSアプリを作るときのおすすめ構成
  • iOS10とiOS11で比較するUIStackViewのhiddenとConstraintエラー - Takahiro Octopress Blog

    はじめに この記事はiOS2 Advent Calendar 2017の10日目の記事です。 記事では今年発表されたiOS11で改善された UIStackView 周りの Constraint 対応について紹介したいと思います。 UIStackView はiOS8以前に、開発者が AutoLayout を駆使して View と View 間のマージンやパディングを設定していた状況を一変させました。 そんな便利な存在である一方で使い方に慣れるまでに時間がかかったり、なぜかうまくいかないと悩んだりすることもしばしばあることと思います。 その中でも厄介だったのが、 UIStackView の子要素に UIStackView があり、元の UIStackView を非表示にすると Constraint エラーが発生するパターンです。 iOS10で発生するConstraintエラー 例えば、下図の

  • 【swift】イラストで分かる!具体的なDelegateの使い方。 - Qiita

    ディップAdventCalendar2016、23日目です。(。・ω・)ノ ※Delegateの書き方を理解するに重点を置いてますので、Delegateの来の使い方を知りたい方には向いておりません。 あくまでも取っ掛かりという目的で閲覧くださいm(_ _)m swift初心者の多くは苦戦するDelegate。 まず最初にぶつかる壁と言っても良いでしょう。 私もその1人で、 分かりにくい分たくさんのDelegateの記事が存在していますが、 ありとあらゆる「わかりやすい!簡単!Delegate」の記事を見てもなかなかピンときませんでした..orz (私の理解力の問題ですが..) ということで、 世に溢れているわかりやすいDelegateの説明を見ても理解できなかった私が、 イラストを使ってさらにわかりやすく、Delegateの基を書いていきたいと思います。 1.そもそもなぜ理解できないの

    【swift】イラストで分かる!具体的なDelegateの使い方。 - Qiita
  • [Swift] @objcの話 [Objective-C] - Qiita

    @objc の話 Swift4になって@objcを付けなければならないプロパティやメソッドが増えて大変ですね。 @objcって付けないとだめなの?っていう疑問がある人も多いと思います。 この記事では @objc を付けると何が起こるのかを解説しています。 ただし、素人が雰囲気で書いています。 Objective-Cの話 @objcを付けると何が起こるかを知るにはObjective-Cの話が必要です。 しかも割と低レベルな話です。ちゃんと説明できるかよくわかりません。 メソッド ご存知の通り、Objective-CはC言語にオブジェクト指向な記述を付け加えたものです。 メソッドは他のOOPLと同じように隠し引数を持った関数としてコンパイルされます。 @implementation Hoge - (void)moveTo:(NSPoint) point { // do something }

    [Swift] @objcの話 [Objective-C] - Qiita
  • Swiftで遊ぼう! on Hatena

    新型コロナ時代に入り、新しい生活スタイルに適応していくのに時間がかかり、プログラミングの勉強は完全にストップした状況が続いていた。 自分のプログラミングの勉強が止まっていても、この業界の進化は止まらない。私がなんとかフォローできていたのはSwift4まで。Swift6が見えてくる状況ですが、やっと復習できる環境になってきたので、アップルの原著である「The Swift Programming Language(Swift5.7beta)」の読み直しからプログラミングの勉強を再開しようと思う。 まだA Swift Tourのパートを読んでいるところだけど、昔読んだ頃からだいぶ内容が変わっている。新しい概念が追加されているからだろう。 取りあえず、今日は関数の所を復習したんで、次のページを微妙に修正しました。 yataiblue.hatenablog.com さあ、毎日少しずつでも勉強をし直し

    Swiftで遊ぼう! on Hatena
  • [iOS] 地図アプリを作る – 現在地から近い順に並べる | DevelopersIO

    はじめに 数日前に中の人になりました中安です。よろしくお願いします。 中の人になる以前は、調べ物をするたびにDevelopers.IOで基的なところから応用編に至るまで色々とお世話になりました。自分も同じように基的な技術と応用技術を徐々にアウトプットしていけるようにブログの執筆をしていきたいと思っております。 今回は最初なので基的なところといいますか、初心者向けな内容からスタートしてみたいと思います。 テーマは「マップ」 さまざまなアプリで使用される「地図」でよく使うTipsを実践混じえて書いていきます。 つくるもの 今回は下記のようなアプリを作るぞーというサンプルのもと話を進めようかと思います。 京都に遊びにきた人が現在地から様々な観光地の場所を地図上で確認するアプリ 現在地から観光地までの距離が表示される 現在地から近い順に並ぶリストを表示する なぜ京都なのか…。それは「自分の出

    [iOS] 地図アプリを作る – 現在地から近い順に並べる | DevelopersIO
  • コンパイルエラーやランタイムエラーを直していくだけでiOSアプリの作り方がわかるプロジェクト - Qiita

    を作りました。 takasek/MokuMokuNotes_iOS: Quest based learning tool for writing a basic iOS app https://github.com/takasek/MokuMokuNotes_iOS モチベーション 元々、 Androidエンジニアの@callipanが、私のAndroid入門のためにわざわざ コンパイルエラーやランタイムエラーを直していくだけでAndroidアプリの作り方がわかるプロジェクト を用意してくれたんですが、それがとても楽しかったのでiOS版を作りました。 (2018/5/12追記) インスパイヤ元であるAndroid版も、パワーアップして公開されました! panpanini/MokuMokuNotes_Android: Quest based learning tool for writing

    コンパイルエラーやランタイムエラーを直していくだけでiOSアプリの作り方がわかるプロジェクト - Qiita
  • fatalErrorから復帰させる不思議なSwiftライブラリFortifyを読み解く - Qiita

    参考: Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita しかし先日TwitterでFortifyというライブラリを見かけて、Swiftを使い始めて以来最大の衝撃を受けました。Fortifyはたった150行の1つのSwiftファイルからなるシンプルなライブラリですが、なんとUniversal error, Logic failureから復帰する機能を提供しているのです! // FortifyのREADMEより import Fortify do { try Fortify.exec { var a: String! a = a! // 普通はここで落ちるはず } } catch { // が、catchできるErrorに変換されてここで拾える NSLog("Unwrap error: \(error)") } この記事ではFortifyがいかにしてこの挙動を

    fatalErrorから復帰させる不思議なSwiftライブラリFortifyを読み解く - Qiita
    nabeatsu1
    nabeatsu1 2018/05/10
    “1つはREADMEや紹介記事にかかれている通りサーバーサイドSwiftで使う、もう一つはテストで使うです”
  • iPhone上でデザインチェックできるツールが神がかっている - Qiita

    その名も「Hyperion-iOS」 できること View Inspector テキストのサイズやカラー、フォントなどの状態をタップするだけで確認することができます Measurements タップした箇所のパーツの位置を確認することができます。 PSD上で確認していた作業がいらないレベルで使いやすいです! Zoom ピンチイン、ピンチアウトで拡大縮小が自由自在! Slow Animations アプリ内のすべてのアニメーションを通常の速度の75%、50%または25%にスローダウンして確認することができます! 導入 Pods use_frameworks! pod "HyperioniOS/Core", :configurations => ['Debug'] #"Configurations => Debug" ensures it is only included in debug b

    iPhone上でデザインチェックできるツールが神がかっている - Qiita
  • iOS端末の向き - Qiita

    let motion = CMMotionManager() override func viewDidLoad() { super.viewDidLoad() motion.accelerometerUpdateInterval = 1.0; motion.startAccelerometerUpdates(to: OperationQueue.current!, withHandler: { (data, error) in self.getOrientation( x:(data?.acceleration.x)!, y:(data?.acceleration.y)! ) }) } func getOrientation(x: Double, y: Double) { if (fabs(x) < 0.5) { if (y < 0) { print( "right" ) } else

    iOS端末の向き - Qiita
  • Swift4で音楽プレーヤーを作ってみた!(MPMusicPlayerController) - Qiita

    artistLabel.labelSpacing = 50; // 開始と終了の間間隔 artistLabel.pauseInterval = 3; // スクロール前の一時停止時間 artistLabel.scrollSpeed = 50.0; // スクロール速度 artistLabel.fadeLength = 20.0; // 左端と右端のフェードの長さ import UIKit import MediaPlayer import AutoScrollLabel let w = UIScreen.main.bounds.size.width let h = UIScreen.main.bounds.size.height class ViewController: UIViewController, MPMediaPickerControllerDelegate { let art

    Swift4で音楽プレーヤーを作ってみた!(MPMusicPlayerController) - Qiita
  • SwiftでのXCTestについて - Qiita

    職場で「テストコード書いて」というふうに言われた。 実際に書いたことがなかったので調べながら XCTestを使ってみることにしました。 ひとまず触ってみることにしました。 Swiftのテストケースをファイル追加のステップ "New File..." "Test Case Classes" : 新しいテストクラスを追加 LanguageはSwiftに設定 : ファイルを追加 Bridging-Headerを追加しますか?って言われるので、Yesとして追加 これを実行すると、このテストも実行されます。 案外、簡単ですね。 ※ 実は、プロジェクトを新規作成した時にテストプロジェクトも一緒に作られるみたいですね。。。 今まで知らなかった、、、 初期プロジェクトのコード import UIKit import XCTest class SampleTests: XCTestCase { overri

    SwiftでのXCTestについて - Qiita