読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #300】[RxSwift]observableをトリガーとして使う(withLatestFrom)

はじめに withLatestFrom(_: ) 例ボタンタップするとテキストフィールドの入力値をラベルに表示する 画面 ソース サンプル入手 例ボタンタップするとテキストフィールドの入力値を使ってAPIにりくえすとする 画面 ソース サンプル入手 Swift 入門書籍 仕事で…

【iOS Swift入門 #299】[RxSwift]バインドできるプロパティを作成する

この記事を読んでわかること はじめに UIプロパティを拡張する サンプルアプリ サンプルソースのダウンロード Swift 入門書籍 仕事でやれるレベルになるために 平均的プログラマーを超えるために この記事を読んでわかること RxSwift(RxCocoa)でUIプロパティ…

【iOS Swift入門 #298】Swift3.1での変更点「Sequenceプロトコル(Array等)への関数追加」

この記事を読んでわかること Sequenceプロトコル(Array等)への関数追加 prefix(while:) 例: 条件は「100未満の値」 例: 条件は「1文字以上」 drop(while:) 例: 条件は「100未満の値」 例: 条件は「1文字以上」 Swift 入門書籍 仕事でやれるレベルになるため…

【iOS Swift入門 #297】Swift3.1での変更点「Intのイニシャライザが追加」

この記事を読んでわかること Intのイニシャライザが追加 例 Swift 入門書籍 仕事でやれるレベルになるために 平均的プログラマーを超えるために この記事を読んでわかること Swift3.1での変更点 init?(exactly:)の使い方 Intのイニシャライザが追加 Swift3.1…

【iOS Swift入門 #296】アプリアイコンを動的に変更する。サンプルあり(iOS10.3から可能)

この記事を読んでわかること アプリアイコンを動的に変更する方法のポイント 実装 1.プロジェクトにアイコン画像を追加する 2.info.plistにアイコン情報を追加する 3.アイコンを変更するトリガーとなる処理を書く サンプル サンプルの概要 サンプルソースの…

【iOS Swift入門 #295】アプリ起動中(フォアグラウンド)でも通知(ローカル・リモート)を表示する

この記事を読んでわかること はじめに 方法 サンプル AppDelegate ViewController Swift 入門書籍 仕事でやれるレベルになるために 平均的プログラマーを超えるために この記事を読んでわかること アプリ起動中に通知(ローカル・リモート)を表示する方法 は…

【iOS Swift入門 #294】Zipファイルの圧縮・解凍チュートリアル(Tutorial)

はじめに この記事を読んでわかること Zipファイルの圧縮・解凍に使うライブラリ プロジェクトへの追加方法 解凍 圧縮 サンプル 参考情報 Zip Swift 入門書籍 仕事でやれるレベルになるために 平均的プログラマーを超えるために はじめに iOS Swiftを使ったZ…

【iOS Swift入門 #293】iOS10 画像添付したローカル通知を送信・受信する

はじめに 実装 ローカル通知に画像を添付 サンプルのダウンロード 参考情報 Swift はじめに 画像添付したローカル通知を送信・受信する処理を確認します。 これ以降のサンプルは下記記事のサンプルの続きです。 そもそも、iOS10のローカル通知について初めて…

【iOS Swift入門 #292】 iOS10 User Notification frameworkを使ってローカル通知を送信する

はじめに この記事を読んでわかること 実装 通知送信許可の取得 通知のリクエスト 例 サンプルのダウンロード 参考情報 Swift はじめに iOS10になって、通知の実装が刷新された。 簡単なローカル通知を送信する処理を実装して、基礎を学ぶ。 この記事を読ん…

【iOS Swift入門 #291】グラデーションしているViewをつくる

この記事読んでわかること やり方 グラデーションの方向 水平方向にグラデーション 垂直方向にグラデーション 右下方向にグラデーション 色を切り替える地点 切り替える色 例 ダウンロード 参考情報 Swift この記事読んでわかること グラデーションしているV…

【iOS Swift入門 #290】文字列・テキストをUILabelに表示するために必要な領域サイズを計算する

はじめに この記事を読んでわかること やりかた ソース 例 サンプルソースのダウンロード 参考情報 Swift はじめに 文字列・テキストの表示に必要な領域サイズを得るときに、 NSStringやNSAttributedStringクラスの boundingRect(with:options:context:)メソ…

【iOS Swift入門 #289】UILabelオブジェクトを複製・コピーする

はじめに やりかた ソース 例 例:コンソールで確認 例:画面で確認 サンプルソースのダウンロード 参考情報 Swift はじめに UILabelオブジェクトを複製したいということがあるかも、 ということでやりかたを調べた。 やりかた NSKeyedArchiverクラスでNSData…

【iOS Swift入門 #288】UILabelやUIButtonに表示している文字列のフォントサイズを自動調整させる

はじめに この記事を読んでわかること 自動調整させるには? 例 自動調整させない場合 ソース スクリーンキャプチャ 自動調整させた場合 ソース スクリーンキャプチャ サンプルソースのダウンロード 参考情報 Swift はじめに UILabelやUIButtonのサイズは固…

【iOS Swift入門 #287】関数・メソッドのパラメータにvarを指定できないように変更 [Swift3.0]

関数・メソッドのパラメータにvarを指定できないように変更 Swift3.0以前にこれができることを知らなかった。 変更された理由はvarとinoutが混同してしまうことがあるから。 変更前(Swift3.0からはエラーになる) import UIKit // 関数・メソッド内で変更でき…

【iOS Swift入門 #285】CoreAnimationを使ったスプリングアニメーション(CASpringAnimation)

この記事を読んでわかること CoreAnimationを使ったスプリングアニメーション CASpringAnimationで使うプロパティについて CoreAnimation Frameworkにある CASpringAnimationクラスを使う。 (Deployment TargetがiOS9.0以上である必要あり) damping この値が…

【iOS Swift入門 #284】引数のデータ型が異なるが、名前が同じメソッドを実行した場合に、どのメソッドが実行されるか?

この記事を読んでわかること 引数のデータ型が異なるが、名前が同じメソッドを実行した場合に、どのメソッドが実行されるか? 確認 AnimalクラスとDogクラスがある。 DogクラスはAnimalクラスを継承している。 import Foundation class Animal{ let name:Str…

【iOS Swift入門 #283】引数の数が可変の関数・メソッドを定義する

この記事を読んでわかること 引数の数が可変の関数・メソッドの定義 引数の数が可変の関数・メソッドの定義 引数のデータ型を「<データ型>...」としてあげればいい。 例えば、Int...やString...。 func participants(of names: String...){ names.forEach{ p…

【iOS Swift入門 #282】独自クラスの配列を拡張(extension)する

この記事を読んでわかること 独自クラスの配列を拡張してメソッドを追加する 独自クラスの配列を拡張してメソッドを追加する まずは独自クラスのAnimalクラスを作成した。 プロパティにnameを持つだけ。 class Animal:NSObject{ let name: String init(name:…

【iOS Swift入門 #281】Swift3.0がリリースされて、改めてSwiftを勉強してわかったこと その1

この記事を読んでわかること Swiftを改めて勉強した、私の気付き Swift3.0での変更点だけでなく、今まで知らなかったことにも気づけました。 気づいたこと repeat文 do whileの繰り返し構文でdoに代わって、repeatを使うことになった。 repeat while構文とな…

【iOS Swift入門 #280】テーブルビューをスクロールしたときにカクカクするのを無くすためにすること ~カラーブレンド(color blend)処理を無くす~

この記事を読んでわかること テーブルビューをスクロールしたときにカクカクするのを無くすためにすること テーブルビューをスクロールしたときにカクカクする原因は、 描画処理に重い処理(複数のことも)が入ることによって発生していることがあります。 今…

【iOS Swift入門 #279】KeyChain(キーチェーン)データの バックアップ・復元可否

はじめに キーチェーンのデータの設定などにより復元できるかが変わります。 主に下記の2つの内容によって変わってきます。 - バックアップ方法 - 復元端末 調べて、簡単に整理しました。 バックアップ方法 バックアップ方法としては下記のように分けられま…

【iOS Swift入門 #278】ScrollMenu(スクロールメニュー)を作ってみました

この記事を読んでわかること ScrollMenuの使い方 はじめに 画面の上のほうに横スクロールメニューを作りました。 ニュース系アプリやブログまとめアプリで使われているのを見ますね。 ↓のキャプチャのように動きます。 github.com 実践編 画像の切替 簡単な…

【iOS Swift入門 #277】「失敗する可能性があるイニシャライザ」を定義する

この記事を読んでわかること 失敗する可能性があるイニシャライザ 初期化に失敗させる場合 イニシャライザの中で各種プロパティの初期化に失敗した場合 失敗する可能性があるイニシャライザの定義 initではなく、init?でイニシャライザを定義する。 注意すべ…

【iOS Swift入門 #276】UITabBarの真ん中のボタンを強調表示する方法のサンプル

この記事を読んでわかること UITabBarの真ん中のボタンを強調表示する方法 はじめに タブバーの真ん中だけ大きく表示されていたり、 真ん中以外のボタンとは表示が異なるようなデザインを見かける。 例えば、Money Forwardという家計簿アプリでは、 真ん中の…

【iOS Swift入門 #275】UIButtonの高さを0にしてもテキストが残ってしまう

この記事を読んでわかること UIButtonの高さを0にしてもテキストが残ってしまう場合の解決方法 例えば、下記のようにUIButtonがひとつある画面がある。 ある条件を満たした場合にUIButtonを非表示にするということがある。 hiddenプロパティで非表示にすると…

【iOS Swift入門 #274】SwiftBondを使ってみる。MVVMをやる場合はこんな感じ?

SwiftBondとは こちらを参照。 https://github.com/SwiftBond/Bond この記事を読んでわかること SwiftBondの導入方法 SwiftBondのちょっとした使い方 SwiftBondを使ったMVVM SwiftBondの導入方法 SwiftBondの導入方法は4つ。 Carthage CocoaPods git submodu…

【iOS Swift入門 #273】XCTestのコードカバレッジを確認する

この記事を読んでわかること コードカバレッジの確認方法 コードカバレッジの確認方法 とても簡単です。 1. スキーマ設定を変更する 2. テストを実行する 3. コードカバレッジを確認 imobile_pid = "33302"; imobile_asid = "357588"; imobile_width = 728; …

【iOS Swift入門 #272】Carthageで特定のライブラリだけ更新する

この記事を読んでわかること Carthageで特定のライブラリだけ更新する方法 Carthageのv0.12がリリースされました。 Carthage 0.12をリリースしました - いけだや技術ノート 以前はすべてのライブラリを更新することしかできませんでしたが、 このv0.12で特定…

【iOS Swift入門 #271】NSXMLParserを使ってXMLを解析する

この記事を読んでわかること XMLデータの解析方法 XMLの解析 XMLの解析にはNSXMLParserクラスを使う。 このクラスに用意されているデリゲートメソッドを使うことで解析できる。 用意されているデリゲートメソッドは下記の通り。 XML解析開始時に実行されるメ…

【iOS Apple Watch,watchOSプログラミング入門 #010】プロジェクトの設定 ~ ヘルスケア(HealthKit)連携 ~

HealthKitを使ってヘルスケアデータにアクセスするには、 プロジェクトに設定が必要です。 ※Apple Developer Programに参加している必要があります。 参加していない場合、HealthKitは使えません。 プロジェクト作成 下記を参考にAppleWatchプロジェクトを作…

【iOS Swift入門 #270】集合(Set)の使い方。コレクションは配列(Array)、辞書(Dictionary)だけじゃない。

この記事を読んでわかること 集合(Set)の使い方 Setは同じ型のデータを格納できるコレクションです。 その他のコレクションであるArrayやDictionaryとの違いは以下の点にあります。 要素に重複がない 要素の順序が決まっていない 作成 let setA: Set<Int> let set</int>…

【iOS Apple Watch,watchOSプログラミング入門 #009】CocoaPodsで複数のターゲットで共通するライブラリがある場合のPodfileの定義方法

この記事を読んでわかること CocoaPodsで複数のターゲットで共通するライブラリがある場合のPodfileの定義方法 CocoaPodsで複数のターゲットで共通するライブラリがある場合のPodfileの定義方法 例えば、iOSアプリとApple Watchアプリで 共通の外部ライブラ…

【iOS Apple Watch,watchOSプログラミング入門 #008】Apple Watchアプリで最大容量50MBを超えてしまった場合の対応方法(ITMS-90389 Size Limit 50 MB Exceeded)

この記事を読んでわかること Apple Watchアプリのサイズが50MBを超えてしまったときの対応方法 Apple Watchアプリの容量は50MBまで AppStoreにアップできるApple Watchアプリの容量は50MB以内でなければなりません。 開発中に50MBを超えても、Xcodeでエラー…

【iOS AppleTV tvOSプログラミング入門 #001】プロジェクト作成 〜 Hello,tvOS

はじめに AppleTVを買い、tvOSの勉強をはじめた。 勉強のメモを残していく。 まずはHello, Worldならぬ、Hello, tvOS。 1. プロジェクト作成 プロジェクト名は適当に。 2. 画面レイアウト作成 ①Main.storyboardを開き、ラベルを配置する ラベルのテキストは…

【iOS Swift入門 #269】リファクタリング ~ if文が続くと読みにくい ~

はじめに 最近リファクタリングを勉強している。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典出版社/メーカー: オライリージャパン発売日: 2012/0…

【iOS Swift入門 #268】Realmのクエリ結果をResults型からRealmモデルクラスのデータ型にして返す

はじめに Realmでクエリ結果はResults型で返ってきます。 これをRealmモデルクラスで返すにはどうしたらいいのかな、 と少し悩んだのでメモしておく。 これでRealmの習得レベルが少しアップした。 例 PersonというRealmモデルクラスを作ったとする。 すべて…

【iOS Apple Watch,watchOSプログラミング入門 #007】Apple WatchとiPhoneでデータ連携する。Watch Connectivity Frameworkを使うのだ

はじめに watchOS2以前、Apple WatchとiPhoneの間でデータ連携する場合、 AppGroupの仕組みを使って、Apple WatchからiPhoneに 保存されているデータにアクセスしていた。 watchOS2からはAppGroupの仕組みは使えない。 設定してみたが本当に使えなかった。 w…

【iOS Apple Watch,watchOSプログラミング入 #006】Buttonの中にラベルを入れて使うと便利。短縮表示と全文表示の切り替えをやってみる

はじめに AppleWatchのラベルやボタンなどのレイアウト部品はiOSアプリのものとは異なる。 ボタンの中にラベルなどのレイアウト部品を入れることができる。 1. プロジェクト作成 下記記事を参考にプロジェクトを作成します。 swift.swift-studying.com 2 画…

【iOS Apple Watch,watchOSプログラミング入 #005】Digital Crownでピッカーを動かす

はじめに watchOS2になって、Digital Crownでアプリの操作することができるようになった。 ピッカーの使い方を学ぶ。 そして、Digital Crownで動かしてみる。 1. プロジェクト作成 下記の記事を参考に作成します。 swift.swift-studying.com 2. AppleWatchの…

【iOS Apple Watch,watchOSプログラミング入 #004】ボタンを押すと文字列を表示する

はじめに ボタンを押すと文字列を表示をやってみます。 imobile_pid = "33302"; imobile_asid = "568775"; imobile_width = 300; imobile_height = 72; imobile_option = { type: "infeed_inline", }; imobile_infeed = { num: "1", }; 1. プロジェクト作成 …

【iOS Apple Watch,watchOSプログラミング入 #003】絵文字を表示する

はじめに AppleWatchはテキスト入力できないので、 メッセージアプリで通知が来た時に、 ボタンを押すと絵文字で返信してくれるものがありますね。 絵文字を使う機会が増えると思い、絵文字の使い方を学びました。 今回はApple Watchに絵文字を表示する方法…

【iOS Apple Watch,watchOSプログラミング入 #002】ラベルを使ってHello, Worldと表示する

はじめに ラベルを使ってHello, Worldと表示します。 下記記事の続きです。 swift.swift-studying.com プロジェクト作成は↑の記事を参考にします。 imobile_pid = "33302"; imobile_asid = "568775"; imobile_width = 300; imobile_height = 72; imobile_opt…

【iOS Apple Watch,watchOSプログラミング入門 #001】Hello, AppleWatch

はじめに AppleWatchが発売された時にWatchKitアプリの作成を学んだ。 swift-studying.com watchOSがリリースされ、変更されているところが多いと思い、学びなおします。 まずはアプリを作って動かしてみる。 1. プロジェクト作成 1. Fileメニュー → New → P…

【iOS Swift入門 #267】全角カタカナ・数字・アルファベットを半角に変換する

はじめに 全角カタカナ・数字・アルファベットだと表示枠に収まらないため、 半角にすれば、収まるのではないかということがあった。 例えば、 「プログラミング」を「プログラミング」 「PROGRAMMING」を「PROGRAMMING」 「12345」を「12345」 …

【iOS Swift入門 #266】XCTestでプロジェクト内ファイルを参照するときにpathForResourceメソッドを使うときは注意しよう

はじめに XCTestでプロジェクト内ファイルを参照するとき、 アプリでプロジェクト内ファイルを参照するときと同じように処理を書くと うまくいかないので注意。 imobile_pid = "33302"; imobile_asid = "568775"; imobile_width = 300; imobile_height = 72;…

【iOS Swift入門 #265】Xcode7.xから使えるようになったUIStackViewを使ってみた。AutoLayoutで苦労していたのが楽になりそう。

Xcode7で使えるようになったUIStackViewとは何か? 聞いた話ではすごい便利になったとか。 となりで話を聞いていたandroidエンジニアは、 やっとiOSでもできるようになったのか、と話していました。 どんなときに便利なのか? 少し勉強し、こんなときに使え…

【iOS Swift入門 #264】Unknown class **** in Interface Builder file でエラー。****クラスがプロジェクトに存在するのにエラーになる!?

アプリをビルドしてたら、 Unknown class **** in Interface Builder file というエラーが出てしまう。 ****の名前のクラスはプロジェクト内に存在するのにね!!! いろいろ試した結果解決した。 解決方法は? imobile_pid = "33302"; imobile_asid = "5687…

【iOS Swift入門 #263】Swift2.0でguard文が使える場合が2つわかった。最もメリットを感じるのはoptional型のチェックだよね。

Swift2.0から導入されたguard文のメリットは2つ。 imobile_pid = "33302"; imobile_asid = "568775"; imobile_width = 300; imobile_height = 72; imobile_option = { type: "infeed_inline", }; imobile_infeed = { num: "1", }; 1.処理を実行する前の事前…

【iOS Swift入門 #262】Swift2.0で繰返しの構文do whileがrepeat whileに変わったので試してみる

Swift2.0で繰返しの構文do whileが変わりました。 「do」を「repeat」に変えるだけです。 imobile_pid = "33302"; imobile_asid = "568775"; imobile_width = 300; imobile_height = 72; imobile_option = { type: "infeed_inline", }; imobile_infeed = { n…

【iOS Swift入門 #261】フォトライブラリから画像・写真を選択して表示する。サンプルをダウンロードして確認!

フォトライブラリから画像・写真を取得する。 imobile_pid = "33302"; imobile_asid = "568775"; imobile_width = 300; imobile_height = 72; imobile_option = { type: "infeed_inline", }; imobile_infeed = { num: "1", }; 1. UIImagePickerControllerDel…