SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Realm meet up #17
自己紹介 永田大祐
https://www.facebook.com/daisuke.nagata.96995
職業 フリーランス iosエンジニア
協力会社  ポテパン
https://potepan.com
今までに参画した案件
漫画アプリ、セキュリティアプリ→objecitve-c言語
ログデータのSDK、相続税アプリ→Swift言語
現在は
常駐と受託の2つの業務を実施しております。
業務案件は
真面目に対応いたしますので、お声かけ願います!
常駐務案件でRealmを使用。
具体的には?
https://github.
com/daisukenagata/Dbank/tree/RxSwiftReal
m
アプリケーションをモデルに
Realmの導入解説、
機能解説を実施します。
Realmの導入!!
ターミナルでプロジェクト選択して
pod install
Realmの主な使い方
オブジェクト(class)を作り
オブジェクト内の
プロパティに型宣言をする。
//オブジェクトの生成
class RealmObject: Object {
//プロパティ設定
dynamic var ID = String()
dynamic var ID2 = String()
dynamic var ID3 = String()
}
String型の他に
Bool Int8 Int16 Int32 Int64 Double Float
NSDate NSData
などサポートしてます。
Realmにデータ内容を
書き込む。
//オブジェクトの追加
let obj:Array = [usernameOutlet.text!,ageOutlet.text!,
passwordOutlet.text!]
//1万件を書き込んだ場合
for _ in 1...10000{
try!realm.write{
let object = obj
realm.create(RealmObject.self,value: object)
}
}
Realmのデータ内容削除。
if editingStyle == .Delete {
//オブジェクト削除
try! realm.write {
realm.delete(users[indexPath.row])
self.tableView.reloadData()
}
}
Realmの書き込んだ
データをソートする。
 
//IDのプロパティをソート
let users = realm.objects(RealmObject)
.sorted("ID", ascending: false)
Realmでは多数のNSPredicate構文を
サポートしています。
アップデートに伴う
マイグレーション。
スキーマバージョンを設定したことがなければ、
最初は0が設定されています。
Realmは自動的に、追加されたプロパティと、
削除されたプロパティを認識します。
ディスク上のスキーマを
自動的にアップデートします。
// 新しいスキーマバージョンを設定します。
let config = Realm.Configuration(
schemaVersion: 1,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 1) {
}
})
データ容量を調べるには?
Realmファイルを確認。
シュミレーターの場合
RealmFileのFileURL
を取得する。
print
(Realm.Configuration.defaultConfiguration)
取得したRealmFilePathと
保存先のFilePathを合わせて、
ターミナルで操作。
RealmFileのコピー
Fileサイズの最適化
let congig = Realm.Configuration.defaultConfiguration
let realmFileURL = congig.fileURL
let copyFileURL = realmFileURL!.
URLByDeletingLastPathComponent!.
URLByAppendingPathComponent("f1.realm")
do {
let realm = try Realm(configuration: congig)
try realm.writeCopyToURL(copyFileURL)
} catch {
//エラー時の処理
}
Realmオブジェクトの
プロパティ名変更。
プロパティにデータを保持しながら、
プロパティ名を変更したい時に実施。
// 新しいスキーマバージョンを設定します。
let config = Realm.Configuration(
schemaVersion: 1,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 1) {
// 新しいプロパティ名を設定します。
migration.renamePropertyForClass(RealmObject.
className(), oldName: "ID", newName: "age")
}
})
業務実践で実施した項目をサンプルのアプリ
ケーションをモデルに解説しました。
Realm自体の機能スピードが
早いとの事ですが、
Realmを実施する手順、メソッドの種類、
コードの可読性などが良い、
作業効率が良いと思いました。
経験の少ない開発者でもRealmを通じて、
プログラミングを学び、
早い成長が出来るFrameWorkと
感じております。
Thank you Realm !!!

Weitere ähnliche Inhalte

Was ist angesagt?

React Nativeってどうなの?
React Nativeってどうなの?React Nativeってどうなの?
React Nativeってどうなの?Ryosuke Hara
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話Hiroyuki Hara
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活をRyunosuke SATO
 
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
20160624 JAWS-UG名古屋 第12回 API Gateway 事始めToshiaki Aoike
 
10分でわかるOpenAPI V3
10分でわかるOpenAPI V310分でわかるOpenAPI V3
10分でわかるOpenAPI V3Kazuchika Sekiya
 
Blazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたBlazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたNaito Oshima
 
VS Code Remote Containersを使った Angular開発
VS Code Remote Containersを使った Angular開発VS Code Remote Containersを使った Angular開発
VS Code Remote Containersを使った Angular開発ShuheiHonma
 
PHP Application E2E with Capybara
PHP Application E2E with CapybaraPHP Application E2E with Capybara
PHP Application E2E with CapybaraYoshiaki Yoshida
 
テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-
テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-
テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-Shinya Mori (@mosuke5)
 
The First React on Rails
The First React on Rails The First React on Rails
The First React on Rails Kohei Ito
 
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発Ryosuke Hara
 
2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordovamiso- soup3
 
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発recotech
 
楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)Kanako Kobayashi
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 

Was ist angesagt? (20)

React Nativeってどうなの?
React Nativeってどうなの?React Nativeってどうなの?
React Nativeってどうなの?
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
 
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
 
RxSwift x Realm
RxSwift x RealmRxSwift x Realm
RxSwift x Realm
 
RHEL8 on Alibaba Cloud
RHEL8 on Alibaba CloudRHEL8 on Alibaba Cloud
RHEL8 on Alibaba Cloud
 
10分でわかるOpenAPI V3
10分でわかるOpenAPI V310分でわかるOpenAPI V3
10分でわかるOpenAPI V3
 
Blazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたBlazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみた
 
VS Code Remote Containersを使った Angular開発
VS Code Remote Containersを使った Angular開発VS Code Remote Containersを使った Angular開発
VS Code Remote Containersを使った Angular開発
 
React meetup 3_eight
React meetup 3_eightReact meetup 3_eight
React meetup 3_eight
 
PHP Application E2E with Capybara
PHP Application E2E with CapybaraPHP Application E2E with Capybara
PHP Application E2E with Capybara
 
テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-
テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-
テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-
 
The First React on Rails
The First React on Rails The First React on Rails
The First React on Rails
 
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発
 
2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova
 
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
 
Deploy TypeScript Application by CodePipeline
Deploy TypeScript Application by CodePipelineDeploy TypeScript Application by CodePipeline
Deploy TypeScript Application by CodePipeline
 
APICのREST API入門
APICのREST API入門APICのREST API入門
APICのREST API入門
 
楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 

Ähnlich wie Realm meet up #17

Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Tokoroten Nakayama
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Drecom Co., Ltd.
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternAtsushi Kambara
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019昌桓 李
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向Tsutomu Ogasawara
 
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~Daisuke Futatsumori
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すTomoki Hasegawa
 
はじめてのモバイルウェブアプリ 1
はじめてのモバイルウェブアプリ 1はじめてのモバイルウェブアプリ 1
はじめてのモバイルウェブアプリ 1Taisuke Fukuno
 
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発Tomonori Ohba
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションYoshito Tabuchi
 
超高速アプリ開発法
超高速アプリ開発法超高速アプリ開発法
超高速アプリ開発法Keiichi SASAKI
 
Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版Yoshito Tabuchi
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化Takashi Okamoto
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよNaruto TAKAHASHI
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜MicroAd, Inc.(Engineer)
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Atsushi Harada
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムGo Sueyoshi (a.k.a sue445)
 

Ähnlich wie Realm meet up #17 (20)

Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
 
AndroidでDIxAOP
AndroidでDIxAOPAndroidでDIxAOP
AndroidでDIxAOP
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
 
はじめてのモバイルウェブアプリ 1
はじめてのモバイルウェブアプリ 1はじめてのモバイルウェブアプリ 1
はじめてのモバイルウェブアプリ 1
 
LT発表資料
LT発表資料LT発表資料
LT発表資料
 
The evolution of c#
The evolution of c#The evolution of c#
The evolution of c#
 
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
 
超高速アプリ開発法
超高速アプリ開発法超高速アプリ開発法
超高速アプリ開発法
 
Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
 

Mehr von Daisuke Nagata

iOSDC Japan 2019 Reject Conference days1[非公式]
iOSDC Japan 2019 Reject Conference days1[非公式]iOSDC Japan 2019 Reject Conference days1[非公式]
iOSDC Japan 2019 Reject Conference days1[非公式]Daisuke Nagata
 
Swift love party _meeting_materials
Swift love party _meeting_materialsSwift love party _meeting_materials
Swift love party _meeting_materialsDaisuke Nagata
 
Metalプログラミング
MetalプログラミングMetalプログラミング
MetalプログラミングDaisuke Nagata
 
Swiftプログラミングを考える
Swiftプログラミングを考えるSwiftプログラミングを考える
Swiftプログラミングを考えるDaisuke Nagata
 
Bluetooth connecting iot bluetooth
Bluetooth connecting iot bluetoothBluetooth connecting iot bluetooth
Bluetooth connecting iot bluetoothDaisuke Nagata
 
Machine learning at swift3
Machine learning at swift3Machine learning at swift3
Machine learning at swift3Daisuke Nagata
 
実践業務を爆速でこなすtipsとgenerics
実践業務を爆速でこなすtipsとgenerics 実践業務を爆速でこなすtipsとgenerics
実践業務を爆速でこなすtipsとgenerics Daisuke Nagata
 
Sansan様 登壇資料
Sansan様 登壇資料Sansan様 登壇資料
Sansan様 登壇資料Daisuke Nagata
 
Rx swift,Repro framewolrk
Rx swift,Repro framewolrkRx swift,Repro framewolrk
Rx swift,Repro framewolrkDaisuke Nagata
 
キャリアとアプリの アップデート
キャリアとアプリの アップデートキャリアとアプリの アップデート
キャリアとアプリの アップデートDaisuke Nagata
 

Mehr von Daisuke Nagata (13)

iOSDC Japan 2019 Reject Conference days1[非公式]
iOSDC Japan 2019 Reject Conference days1[非公式]iOSDC Japan 2019 Reject Conference days1[非公式]
iOSDC Japan 2019 Reject Conference days1[非公式]
 
Swift love party _meeting_materials
Swift love party _meeting_materialsSwift love party _meeting_materials
Swift love party _meeting_materials
 
Swift愛好会vol37
Swift愛好会vol37Swift愛好会vol37
Swift愛好会vol37
 
Ios machine learning
Ios machine learningIos machine learning
Ios machine learning
 
Metalプログラミング
MetalプログラミングMetalプログラミング
Metalプログラミング
 
Swiftプログラミングを考える
Swiftプログラミングを考えるSwiftプログラミングを考える
Swiftプログラミングを考える
 
Bluetooth connecting iot bluetooth
Bluetooth connecting iot bluetoothBluetooth connecting iot bluetooth
Bluetooth connecting iot bluetooth
 
Machine learning at swift3
Machine learning at swift3Machine learning at swift3
Machine learning at swift3
 
OpenCV→Swift3.0.1
OpenCV→Swift3.0.1OpenCV→Swift3.0.1
OpenCV→Swift3.0.1
 
実践業務を爆速でこなすtipsとgenerics
実践業務を爆速でこなすtipsとgenerics 実践業務を爆速でこなすtipsとgenerics
実践業務を爆速でこなすtipsとgenerics
 
Sansan様 登壇資料
Sansan様 登壇資料Sansan様 登壇資料
Sansan様 登壇資料
 
Rx swift,Repro framewolrk
Rx swift,Repro framewolrkRx swift,Repro framewolrk
Rx swift,Repro framewolrk
 
キャリアとアプリの アップデート
キャリアとアプリの アップデートキャリアとアプリの アップデート
キャリアとアプリの アップデート
 

Realm meet up #17