Skip to content

Commit e8edacf

Browse files
Release 1.0.1
2 parents 3d18a98 + eb4a912 commit e8edacf

6 files changed

Lines changed: 26 additions & 8 deletions

File tree

Chuck Norris Facts.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,12 +1266,14 @@
12661266
buildSettings = {
12671267
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
12681268
CODE_SIGN_STYLE = Automatic;
1269+
CURRENT_PROJECT_VERSION = 2;
12691270
DEVELOPMENT_TEAM = PHM6B5Y356;
12701271
INFOPLIST_FILE = "Chuck Norris Facts/Resources/Info.plist";
12711272
LD_RUNPATH_SEARCH_PATHS = (
12721273
"$(inherited)",
12731274
"@executable_path/Frameworks",
12741275
);
1276+
MARKETING_VERSION = 1.0.1;
12751277
PRODUCT_BUNDLE_IDENTIFIER = "net.djorkaeff.Chuck-Norris-Facts";
12761278
PRODUCT_NAME = "$(TARGET_NAME)";
12771279
SWIFT_VERSION = 5.0;
@@ -1285,12 +1287,14 @@
12851287
buildSettings = {
12861288
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
12871289
CODE_SIGN_STYLE = Automatic;
1290+
CURRENT_PROJECT_VERSION = 2;
12881291
DEVELOPMENT_TEAM = PHM6B5Y356;
12891292
INFOPLIST_FILE = "Chuck Norris Facts/Resources/Info.plist";
12901293
LD_RUNPATH_SEARCH_PATHS = (
12911294
"$(inherited)",
12921295
"@executable_path/Frameworks",
12931296
);
1297+
MARKETING_VERSION = 1.0.1;
12941298
PRODUCT_BUNDLE_IDENTIFIER = "net.djorkaeff.Chuck-Norris-Facts";
12951299
PRODUCT_NAME = "$(TARGET_NAME)";
12961300
SWIFT_VERSION = 5.0;

Chuck Norris Facts/App/Scenes/Facts/FactsList/FactsListViewController.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import Lottie
1414

1515
final class FactsListViewController: UIViewController {
1616

17-
var viewModel: FactsListViewModel!
17+
var viewModel: FactsListViewModel?
1818

1919
private let disposeBag = DisposeBag()
2020

@@ -104,6 +104,8 @@ final class FactsListViewController: UIViewController {
104104
}
105105

106106
private func setupBindings() {
107+
guard let viewModel = viewModel else { return }
108+
107109
rx.viewDidAppear
108110
.bind(to: viewModel.inputs.viewDidAppear)
109111
.disposed(by: disposeBag)

Chuck Norris Facts/App/Scenes/Facts/SearchFacts/SearchFactsViewController.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import RxDataSources
1212

1313
final class SearchFactsViewController: UIViewController {
1414

15-
var viewModel: SearchFactsViewModel!
15+
var viewModel: SearchFactsViewModel?
1616

1717
let disposeBag = DisposeBag()
1818

@@ -109,6 +109,8 @@ final class SearchFactsViewController: UIViewController {
109109
}
110110

111111
private func setupBindings() {
112+
guard let viewModel = viewModel else { return }
113+
112114
rx.viewWillAppear
113115
.bind(to: viewModel.inputs.viewWillAppear)
114116
.disposed(by: disposeBag)

Chuck Norris Facts/App/Scenes/Facts/SearchFacts/Suggestions/SuggestionsCell.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ final class SuggestionsCell: UITableViewCell {
3737
}
3838
)
3939

40-
var viewModel: SuggestionsViewModel! {
40+
var viewModel: SuggestionsViewModel? {
4141
didSet {
4242
self.setupBindings()
4343
}
@@ -71,6 +71,8 @@ final class SuggestionsCell: UITableViewCell {
7171
}
7272

7373
private func setupBindings() {
74+
guard let viewModel = viewModel else { return }
75+
7476
collectionView.rx
7577
.setDelegate(self)
7678
.disposed(by: disposeBag)

Chuck Norris Facts/Core/Data/Storage/FactsStorage.swift

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,32 +26,40 @@ protocol FactsStorageType {
2626
}
2727

2828
final class FactsStorage: FactsStorageType {
29-
private let realm: Realm!
29+
private let realm: Realm?
3030

3131
init(realm: Realm? = nil) {
3232
self.realm = realm ?? (try? Realm())
3333
}
3434

3535
func storeCategories(_ categories: [FactCategory]) {
36+
guard let realm = realm else { return }
37+
3638
try? realm.write {
3739
let entities = categories.map(FactCategoryEntity.init)
38-
self.realm.add(entities, update: .modified)
40+
realm.add(entities, update: .modified)
3941
}
4042
}
4143

4244
func retrieveCategories() -> Observable<[FactCategory]> {
45+
guard let realm = realm else { return .never() }
46+
4347
let entities = realm.objects(FactCategoryEntity.self)
4448
return Observable.collection(from: entities).map { $0.map { $0.item } }
4549
}
4650

4751
func storeSearch(searchTerm: String) {
52+
guard let realm = realm else { return }
53+
4854
try? realm.write {
4955
let entity = SearchEntity(searchTerm: searchTerm)
50-
self.realm.add(entity, update: .modified)
56+
realm.add(entity, update: .modified)
5157
}
5258
}
5359

5460
func retrieveSearches() -> Observable<[String]> {
61+
guard let realm = realm else { return .never() }
62+
5563
let entities = realm.objects(SearchEntity.self).sorted(byKeyPath: "updatedAt", ascending: false)
5664
return Observable.collection(from: entities).map { $0.map { $0.searchTerm } }
5765
}

Chuck Norris Facts/Resources/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
<key>CFBundlePackageType</key>
1616
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>1.0</string>
18+
<string>$(MARKETING_VERSION)</string>
1919
<key>CFBundleVersion</key>
20-
<string>1</string>
20+
<string>$(CURRENT_PROJECT_VERSION)</string>
2121
<key>LSRequiresIPhoneOS</key>
2222
<true/>
2323
<key>UIApplicationSceneManifest</key>

0 commit comments

Comments
 (0)