diff --git a/App/components/FCDetail/index.js b/App/components/FCDetail/index.js
index c03d42d..c51309c 100644
--- a/App/components/FCDetail/index.js
+++ b/App/components/FCDetail/index.js
@@ -1,7 +1,7 @@
import React from 'react'
import { Alert, Button, Image, Text, View } from 'react-native'
-import { AppStyles, AppColors, AppFontStyle } from 'App/theme'
+import { AppColors, AppFontStyle, AppStyles, AppType } from 'App/theme'
const _onBuy = car => (
Alert.alert(
@@ -24,31 +24,39 @@ export const FCDetail = ({ car }) => (
source={{ uri: car.img }} />
{car.name.toUpperCase()}
- {car.available}
+
+ {car.available}
+
-
- Make: {car.make}
- Model: {car.model}
- Year: {car.year}
+
+
+ Make: {car.make.toUpperCase()}
+
+
+ Model: {car.model.toUpperCase()}
+
+
+ Year: {car.year}
+
{car.availability && (
-
+
+ color={AppColors.success} />
)}
diff --git a/App/components/FCList/index.js b/App/components/FCList/index.js
index 31c5c5a..12afcc5 100644
--- a/App/components/FCList/index.js
+++ b/App/components/FCList/index.js
@@ -2,16 +2,15 @@ import React, { PureComponent } from 'react'
import { FlatList, View, Text } from 'react-native'
import { FCListItem } from 'App/components/FCListItem'
-
import { AppStyles } from 'App/theme'
export class FCList extends PureComponent {
_keyExtractor = car => `car-${car.id}`
_onEndReached = () => {
- if (!this.canAction) return;
+ if (!this.canAction) return
this.props.getMoreCars()
- };
+ }
_renderCar = car => (
{
@@ -14,6 +16,14 @@ export class FCListItem extends PureComponent {
onCarSelect(item.id)
}
+ _renderIcon = (iconName) => (
+
+ )
+
render() {
const { car: { item } } = this.props
return (
@@ -25,11 +35,27 @@ export class FCListItem extends PureComponent {
- {item.name} ({item.year})
-
-
- {item.make} {item.model} | {item.available}
+ {item.name.toUpperCase()}
+ {' '}
+ ({item.available})
+
+
+ {this._renderIcon('car')}
+ {' '}
+ {item.model}
+
+
+ {this._renderIcon('build')}
+ {' '}
+ {item.make}
+
+
+ {this._renderIcon('calendar')}
+ {' '}
+ {item.year}
+
+
diff --git a/App/containers/FCCarDetail/index.js b/App/containers/FCCarDetail/index.js
index e51556e..82d6642 100644
--- a/App/containers/FCCarDetail/index.js
+++ b/App/containers/FCCarDetail/index.js
@@ -1,9 +1,8 @@
-import React, { PureComponent } from 'react';
-import { View } from 'react-native';
+import React, { PureComponent } from 'react'
+import { View } from 'react-native'
import { connect } from 'react-redux'
import { FCDetail } from 'App/components'
-
import { AppStyles } from 'App/theme'
class FCCarDetail extends PureComponent {
diff --git a/App/containers/FCCarList/index.js b/App/containers/FCCarList/index.js
index 2c07462..21e0982 100644
--- a/App/containers/FCCarList/index.js
+++ b/App/containers/FCCarList/index.js
@@ -1,4 +1,4 @@
-import React, { Fragment, PureComponent } from 'react';
+import React, { Fragment, PureComponent } from 'react'
import { connect } from 'react-redux'
import { bindActionCreators } from 'redux'
diff --git a/App/store/actionCreators.js b/App/store/actionCreators.js
index 5a0a963..dd63717 100644
--- a/App/store/actionCreators.js
+++ b/App/store/actionCreators.js
@@ -2,8 +2,6 @@ import { createAction } from 'redux-actions'
import * as actions from './actions'
-// Actions
-export const ping = createAction(actions.PING)
export const loading = createAction(actions.LOADING)
export const getCars = createAction(actions.GET_CARS)
diff --git a/App/store/actions.js b/App/store/actions.js
index c37aa37..32f36a2 100644
--- a/App/store/actions.js
+++ b/App/store/actions.js
@@ -1,5 +1,4 @@
// Actions Constant
-export const PING = 'ping'
export const LOADING = 'app: loading'
export const GET_CARS = 'app: get cars'
diff --git a/App/store/index.js b/App/store/index.js
index 71c1566..c432dab 100644
--- a/App/store/index.js
+++ b/App/store/index.js
@@ -17,12 +17,11 @@ const composeEnhancers =
typeof window === 'object' &&
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
- // Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize...
- }) : compose;
+ }) : compose
const enhancer = composeEnhancers(
applyMiddleware(...middleware),
-);
+)
const store = createStore(
reducer,
diff --git a/App/store/reducers.js b/App/store/reducers.js
index 7e76cf3..4864bc0 100644
--- a/App/store/reducers.js
+++ b/App/store/reducers.js
@@ -3,11 +3,11 @@ import { handleActions } from 'redux-actions'
import * as actions from './actions'
const initialState = {
- loading: false,
- currentLoadedCars: [],
cars: [],
- selectedCar: null,
+ currentLoadedCars: [],
+ loading: false,
resultPage: 1,
+ selectedCar: null,
}
const rootReducer = handleActions(
@@ -43,10 +43,7 @@ const rootReducer = handleActions(
return state.defaultCarOrder
}
})
- return {
- ...state,
- cars
- }
+ return { ...state, cars }
},
[actions.GET_AVAILABILITIES_SUCCESS]: (state, action) => {
diff --git a/App/store/sagas.js b/App/store/sagas.js
index f684911..683b5ae 100644
--- a/App/store/sagas.js
+++ b/App/store/sagas.js
@@ -5,7 +5,7 @@ import {
takeLatest
} from 'redux-saga/effects'
-import * as api from "App/api";
+import * as api from "App/api"
import {
getAvailabilities,
@@ -14,7 +14,7 @@ import {
getCarsFailed,
getCarsSuccess,
loading,
-} from './actionCreators';
+} from './actionCreators'
import * as actions from './actions'
function* fetchCars(action) {
diff --git a/App/theme/colors.js b/App/theme/colors.js
index 8e8be89..90f8fde 100644
--- a/App/theme/colors.js
+++ b/App/theme/colors.js
@@ -1,23 +1,12 @@
export const AppColors = {
darkBlue: '#00386F',
- blue: '#0052A2',
- clear: 'rgba(0,0,0,0)',
transparent: 'rgba(0,0,0,0)',
silver: '#F7F7F7',
steel: '#CCCCCC',
- error: 'rgba(200, 0, 0, 0.8)',
- ricePaper: 'rgba(255,255,255, 0.75)',
- frost: '#D8D8D8',
+ frost: '#E7E7E7',
cloud: 'rgba(200,200,200, 0.35)',
- windowTint: 'rgba(0, 0, 0, 0.4)',
- panther: '#161616',
charcoal: '#595959',
coal: '#2d2d2d',
- bloodOrange: '#fb5f26',
snow: 'white',
- ember: 'rgba(164, 0, 48, 0.5)',
- fire: '#e73536',
- drawer: 'rgba(30, 30, 29, 0.95)',
success: '#006400',
- danger: '#9a0000'
}
diff --git a/App/theme/fonts.js b/App/theme/fonts.js
index b8794f8..b99cbd9 100644
--- a/App/theme/fonts.js
+++ b/App/theme/fonts.js
@@ -24,7 +24,7 @@ export const AppFontStyle = {
fontSize: AppFontSize.h1
},
h2: {
- fontWeight: 'bold',
+ fontWeight: AppType.bold,
fontSize: AppFontSize.h2
},
h3: {
@@ -51,8 +51,4 @@ export const AppFontStyle = {
fontFamily: AppType.base,
fontSize: AppFontSize.medium,
},
- descriptionContainer: {
- padding: 4,
- borderRadius: 5,
- }
}
diff --git a/App/theme/metrics.js b/App/theme/metrics.js
index 4c407dc..10dcc7b 100644
--- a/App/theme/metrics.js
+++ b/App/theme/metrics.js
@@ -1,33 +1,13 @@
-import { Dimensions } from 'react-native'
-
-const { width, height } = Dimensions.get('window')
-
export const AppMetrics = {
marginHorizontal: 10,
marginVertical: 10,
- section: 25,
baseMargin: 10,
doubleBaseMargin: 20,
navbarIconMargin: 30,
smallMargin: 5,
tinyMargin: 3,
horizontalLineHeight: 1,
- screenWidth: width < height ? width : height,
- screenHeight: width < height ? height : width,
navBarHeight: 42,
buttonRadius: 4,
listImageSize: 64,
- icons: {
- tiny: 15,
- small: 20,
- medium: 30,
- large: 45,
- xl: 60
- },
- images: {
- small: 20,
- medium: 40,
- large: 60,
- logo: 300
- }
}
diff --git a/App/theme/styles.js b/App/theme/styles.js
index f0101c4..354b0ef 100644
--- a/App/theme/styles.js
+++ b/App/theme/styles.js
@@ -1,20 +1,14 @@
-import {
- AppFontSize,
- AppFontStyle,
- AppType,
-} from './fonts'
+import { AppFontSize, AppFontStyle } from './fonts'
import { AppMetrics } from './metrics'
import { AppColors } from './colors'
export const AppStyles = {
mainContainer: {
flex: 1,
- marginTop: AppMetrics.doubleBaseMargin,
backgroundColor: AppColors.transparent,
},
container: {
flex: 1,
- marginTop: AppMetrics.navBarHeight,
},
loadingContainer: {
position: 'absolute',
@@ -42,17 +36,24 @@ export const AppStyles = {
itemContent: {
flex: 1,
flexDirection: 'column',
- justifyContent: 'center',
- padding: AppMetrics.smallMargin,
+ padding: AppMetrics.baseMargin,
+ },
+ itemIcon: {
+ marginRight: AppMetrics.tinyMargin,
},
title: {
fontSize: AppFontSize.h6,
color: AppColors.darkBlue,
- marginBottom: AppMetrics.tinyMargin,
+ marginBottom: AppMetrics.smallMargin,
+ },
+ metaContainer: {
+ flex: 1,
+ flexDirection: 'row',
},
meta: {
- fontSize: AppFontSize.medium,
+ fontSize: AppFontSize.small,
color: AppColors.charcoal,
+ paddingRight: AppMetrics.baseMargin,
}
},
detail: {
@@ -73,39 +74,26 @@ export const AppStyles = {
paddingLeft: 20,
paddingBottom: 20
},
+ headerContainer: {
+ borderRadius: 5,
+ marginBottom: 4,
+ padding: 4,
+ },
+ metaContainer: {
+ flex: 1,
+ justifyContent: 'space-around',
+ backgroundColor: AppColors.frost,
+ padding: 20,
+ },
+ meta: {
+ ...AppFontStyle.normal,
+ color: AppColors.coal,
+ paddingBottom: 10,
+ },
+ buyButton: {
+ backgroundColor: AppColors.silver,
+ flex: 1,
+ justifyContent: 'center',
+ }
},
- section: {
- margin: AppMetrics.section,
- padding: AppMetrics.baseMargin,
- borderTopColor: AppColors.frost,
- borderTopWidth: 0.5,
- borderBottomColor: AppColors.frost,
- borderBottomWidth: 1
- },
- darkLabelContainer: {
- backgroundColor: AppColors.cloud,
- padding: AppMetrics.smallMargin
- },
- darkLabel: {
- fontFamily: AppType.bold,
- color: AppColors.snow
- },
- groupContainer: {
- margin: AppMetrics.smallMargin,
- flexDirection: 'row',
- justifyContent: 'space-around',
- alignItems: 'center'
- },
- sectionTitle: {
- ...AppFontStyle.h4,
- color: AppColors.coal,
- backgroundColor: AppColors.ricePaper,
- padding: AppMetrics.smallMargin,
- marginTop: AppMetrics.smallMargin,
- marginHorizontal: AppMetrics.baseMargin,
- borderWidth: 1,
- borderColor: AppColors.charcoal,
- alignItems: 'center',
- textAlign: 'center'
- }
}
diff --git a/App/views/DetailView/index.js b/App/views/DetailView/index.js
index 766db7c..8d2acb1 100644
--- a/App/views/DetailView/index.js
+++ b/App/views/DetailView/index.js
@@ -1,5 +1,5 @@
import React, { PureComponent } from 'react'
-import { View } from 'react-native'
+import { SafeAreaView } from 'react-native'
import { FCCarDetailContainer } from 'App/containers'
@@ -8,9 +8,9 @@ import { AppStyles } from 'App/theme'
export class DetailView extends PureComponent {
render() {
return (
-
+
-
+
)
}
}
diff --git a/App/views/ListView/index.js b/App/views/ListView/index.js
index 27bbde0..bc3e058 100644
--- a/App/views/ListView/index.js
+++ b/App/views/ListView/index.js
@@ -1,5 +1,5 @@
import React, { PureComponent } from 'react'
-import { View } from 'react-native'
+import { SafeAreaView } from 'react-native'
import { FCCarListContainer } from 'App/containers'
import { DetailView } from 'App/views/DetailView'
@@ -17,9 +17,9 @@ export class ListView extends PureComponent {
render() {
return (
-
+
-
+
)
}
}
diff --git a/ios/fancy_cars.xcodeproj/project.pbxproj b/ios/fancy_cars.xcodeproj/project.pbxproj
index e018442..7477857 100644
--- a/ios/fancy_cars.xcodeproj/project.pbxproj
+++ b/ios/fancy_cars.xcodeproj/project.pbxproj
@@ -5,6 +5,7 @@
};
objectVersion = 46;
objects = {
+
/* Begin PBXBuildFile section */
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
@@ -35,22 +36,9 @@
2DCD954D1E0B4F2C00145EB5 /* fancy_carsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* fancy_carsTests.m */; };
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
- ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
9E0E1310726C46219F218B29 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0127A10C720B45609EC1E316 /* libRNVectorIcons.a */; };
- 1126E171D35A4D749D3A73CD /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 831FB6047E984996AF511E48 /* Entypo.ttf */; };
- 1300972DFAC14808B08BED19 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9A721A44BF8B44B4A4432E53 /* EvilIcons.ttf */; };
- 99805327AD084F67880B8861 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CF04583AA4DD4B318EB597F2 /* Feather.ttf */; };
- B1688CD4D89A40BCB08670EC /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 571D8FFF56EB45869B3D8235 /* FontAwesome.ttf */; };
- 934D91D84C834F578EBE36C3 /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 74038B957D804DE092F5164E /* FontAwesome5_Brands.ttf */; };
- 7C907E1E006C46D396AE4F98 /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D62EBC757355468C9FE0AAC1 /* FontAwesome5_Regular.ttf */; };
- 60BF08C3736B45C384997327 /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 5CFC3213C6F74A10B1D8CD4A /* FontAwesome5_Solid.ttf */; };
- 277D745963AA4D4FB0892E0E /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 482D656303E3410B93491340 /* Foundation.ttf */; };
+ ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
F5879937A3154431B3F09602 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F8441A2B69E84C0DBAF272E7 /* Ionicons.ttf */; };
- 5675B13FB43346119B363C76 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FA1B2174800C41D0A61F39E7 /* MaterialCommunityIcons.ttf */; };
- 4EE4D8DD7E744CB196634E99 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D080F19B75E5452CB017FB04 /* MaterialIcons.ttf */; };
- 5AF26C979AC04DB2AB05F730 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FBB79F2DB5044E2B9420DADF /* Octicons.ttf */; };
- 8CF4AA3400D140FE8EC25323 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = DF0061755D0A40DCAA2B5E9E /* SimpleLineIcons.ttf */; };
- 1BFC0E67C5FA42A283A2BCED /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A0EF00A0E8FB4FCEA5258AB2 /* Zocial.ttf */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -292,6 +280,13 @@
remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04;
remoteInfo = "privatedata-tvOS";
};
+ 4376E7AD214895C100471362 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = E952FC7ED6E640AD8EF7CA7F /* RNVectorIcons.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 5DBEB1501B18CEA900B34395;
+ remoteInfo = RNVectorIcons;
+ };
5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
@@ -339,6 +334,7 @@
00E356EE1AD99517003FC87E /* fancy_carsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = fancy_carsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
00E356F21AD99517003FC87E /* fancy_carsTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = fancy_carsTests.m; sourceTree = ""; };
+ 0127A10C720B45609EC1E316 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; };
139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; };
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; };
13B07F961A680F5B00A75B9A /* fancy_cars.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = fancy_cars.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -356,22 +352,8 @@
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; };
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; };
ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; };
- E952FC7ED6E640AD8EF7CA7F /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; name = "RNVectorIcons.xcodeproj"; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
- 0127A10C720B45609EC1E316 /* libRNVectorIcons.a */ = {isa = PBXFileReference; name = "libRNVectorIcons.a"; path = "libRNVectorIcons.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
- 831FB6047E984996AF511E48 /* Entypo.ttf */ = {isa = PBXFileReference; name = "Entypo.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- 9A721A44BF8B44B4A4432E53 /* EvilIcons.ttf */ = {isa = PBXFileReference; name = "EvilIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- CF04583AA4DD4B318EB597F2 /* Feather.ttf */ = {isa = PBXFileReference; name = "Feather.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- 571D8FFF56EB45869B3D8235 /* FontAwesome.ttf */ = {isa = PBXFileReference; name = "FontAwesome.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- 74038B957D804DE092F5164E /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Brands.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- D62EBC757355468C9FE0AAC1 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Regular.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- 5CFC3213C6F74A10B1D8CD4A /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Solid.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- 482D656303E3410B93491340 /* Foundation.ttf */ = {isa = PBXFileReference; name = "Foundation.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- F8441A2B69E84C0DBAF272E7 /* Ionicons.ttf */ = {isa = PBXFileReference; name = "Ionicons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- FA1B2174800C41D0A61F39E7 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; name = "MaterialCommunityIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- D080F19B75E5452CB017FB04 /* MaterialIcons.ttf */ = {isa = PBXFileReference; name = "MaterialIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- FBB79F2DB5044E2B9420DADF /* Octicons.ttf */ = {isa = PBXFileReference; name = "Octicons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- DF0061755D0A40DCAA2B5E9E /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; name = "SimpleLineIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
- A0EF00A0E8FB4FCEA5258AB2 /* Zocial.ttf */ = {isa = PBXFileReference; name = "Zocial.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
+ E952FC7ED6E640AD8EF7CA7F /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; };
+ F8441A2B69E84C0DBAF272E7 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -553,6 +535,22 @@
name = Frameworks;
sourceTree = "";
};
+ 4376E784214895BD00471362 /* Recovered References */ = {
+ isa = PBXGroup;
+ children = (
+ 0127A10C720B45609EC1E316 /* libRNVectorIcons.a */,
+ );
+ name = "Recovered References";
+ sourceTree = "";
+ };
+ 4376E7AA214895C100471362 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4376E7AE214895C100471362 /* libRNVectorIcons.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
5E91572E1DD0AC6500FF2AA8 /* Products */ = {
isa = PBXGroup;
children = (
@@ -609,6 +607,7 @@
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
EF38BFF1CCF14C4AA8016589 /* Resources */,
+ 4376E784214895BD00471362 /* Recovered References */,
);
indentWidth = 2;
sourceTree = "";
@@ -636,26 +635,12 @@
sourceTree = "";
};
EF38BFF1CCF14C4AA8016589 /* Resources */ = {
- isa = "PBXGroup";
+ isa = PBXGroup;
children = (
- 831FB6047E984996AF511E48 /* Entypo.ttf */,
- 9A721A44BF8B44B4A4432E53 /* EvilIcons.ttf */,
- CF04583AA4DD4B318EB597F2 /* Feather.ttf */,
- 571D8FFF56EB45869B3D8235 /* FontAwesome.ttf */,
- 74038B957D804DE092F5164E /* FontAwesome5_Brands.ttf */,
- D62EBC757355468C9FE0AAC1 /* FontAwesome5_Regular.ttf */,
- 5CFC3213C6F74A10B1D8CD4A /* FontAwesome5_Solid.ttf */,
- 482D656303E3410B93491340 /* Foundation.ttf */,
F8441A2B69E84C0DBAF272E7 /* Ionicons.ttf */,
- FA1B2174800C41D0A61F39E7 /* MaterialCommunityIcons.ttf */,
- D080F19B75E5452CB017FB04 /* MaterialIcons.ttf */,
- FBB79F2DB5044E2B9420DADF /* Octicons.ttf */,
- DF0061755D0A40DCAA2B5E9E /* SimpleLineIcons.ttf */,
- A0EF00A0E8FB4FCEA5258AB2 /* Zocial.ttf */,
);
name = Resources;
sourceTree = "";
- path = "";
};
/* End PBXGroup section */
@@ -816,6 +801,10 @@
ProductGroup = 146834001AC3E56700842450 /* Products */;
ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
},
+ {
+ ProductGroup = 4376E7AA214895C100471362 /* Products */;
+ ProjectRef = E952FC7ED6E640AD8EF7CA7F /* RNVectorIcons.xcodeproj */;
+ },
);
projectRoot = "";
targets = (
@@ -1052,6 +1041,13 @@
remoteRef = 434ABD202144A2640042322E /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
+ 4376E7AE214895C100471362 /* libRNVectorIcons.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libRNVectorIcons.a;
+ remoteRef = 4376E7AD214895C100471362 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -1103,20 +1099,7 @@
files = (
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
- 1126E171D35A4D749D3A73CD /* Entypo.ttf in Resources */,
- 1300972DFAC14808B08BED19 /* EvilIcons.ttf in Resources */,
- 99805327AD084F67880B8861 /* Feather.ttf in Resources */,
- B1688CD4D89A40BCB08670EC /* FontAwesome.ttf in Resources */,
- 934D91D84C834F578EBE36C3 /* FontAwesome5_Brands.ttf in Resources */,
- 7C907E1E006C46D396AE4F98 /* FontAwesome5_Regular.ttf in Resources */,
- 60BF08C3736B45C384997327 /* FontAwesome5_Solid.ttf in Resources */,
- 277D745963AA4D4FB0892E0E /* Foundation.ttf in Resources */,
F5879937A3154431B3F09602 /* Ionicons.ttf in Resources */,
- 5675B13FB43346119B363C76 /* MaterialCommunityIcons.ttf in Resources */,
- 4EE4D8DD7E744CB196634E99 /* MaterialIcons.ttf in Resources */,
- 5AF26C979AC04DB2AB05F730 /* Octicons.ttf in Resources */,
- 8CF4AA3400D140FE8EC25323 /* SimpleLineIcons.ttf in Resources */,
- 1BFC0E67C5FA42A283A2BCED /* Zocial.ttf in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1239,23 +1222,23 @@
"DEBUG=1",
"$(inherited)",
);
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
+ );
INFOPLIST_FILE = fancy_carsTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/$(TARGET_NAME)\"",
+ );
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
);
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/fancy_cars.app/fancy_cars";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/$(TARGET_NAME)\"",
- );
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
- );
};
name = Debug;
};
@@ -1264,23 +1247,23 @@
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
+ );
INFOPLIST_FILE = fancy_carsTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/$(TARGET_NAME)\"",
+ );
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
);
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/fancy_cars.app/fancy_cars";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/$(TARGET_NAME)\"",
- );
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
- );
};
name = Release;
};
@@ -1290,6 +1273,10 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = NO;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
+ );
INFOPLIST_FILE = fancy_cars/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = (
@@ -1300,10 +1287,6 @@
PRODUCT_BUNDLE_IDENTIFIER = "com.casoetan.fancy-cars";
PRODUCT_NAME = fancy_cars;
VERSIONING_SYSTEM = "apple-generic";
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
- );
};
name = Debug;
};
@@ -1312,6 +1295,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = 1;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
+ );
INFOPLIST_FILE = fancy_cars/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = (
@@ -1322,10 +1309,6 @@
PRODUCT_BUNDLE_IDENTIFIER = "com.casoetan.fancy-cars";
PRODUCT_NAME = fancy_cars;
VERSIONING_SYSTEM = "apple-generic";
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
- );
};
name = Release;
};
@@ -1341,8 +1324,16 @@
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
+ );
INFOPLIST_FILE = "fancy_cars-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/$(TARGET_NAME)\"",
+ );
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@@ -1352,14 +1343,6 @@
SDKROOT = appletvos;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.2;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/$(TARGET_NAME)\"",
- );
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
- );
};
name = Debug;
};
@@ -1375,8 +1358,16 @@
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_NO_COMMON_BLOCKS = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
+ );
INFOPLIST_FILE = "fancy_cars-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/$(TARGET_NAME)\"",
+ );
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@@ -1386,14 +1377,6 @@
SDKROOT = appletvos;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.2;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/$(TARGET_NAME)\"",
- );
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
- );
};
name = Release;
};
@@ -1410,15 +1393,15 @@
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "fancy_cars-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/$(TARGET_NAME)\"",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.fancy_cars-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/fancy_cars-tvOS.app/fancy_cars-tvOS";
TVOS_DEPLOYMENT_TARGET = 10.1;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/$(TARGET_NAME)\"",
- );
};
name = Debug;
};
@@ -1435,15 +1418,15 @@
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "fancy_cars-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/$(TARGET_NAME)\"",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.fancy_cars-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/fancy_cars-tvOS.app/fancy_cars-tvOS";
TVOS_DEPLOYMENT_TARGET = 10.1;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/$(TARGET_NAME)\"",
- );
};
name = Release;
};
diff --git a/ios/fancy_cars/Base.lproj/LaunchScreen.xib b/ios/fancy_cars/Base.lproj/LaunchScreen.xib
index 38ec906..144e989 100644
--- a/ios/fancy_cars/Base.lproj/LaunchScreen.xib
+++ b/ios/fancy_cars/Base.lproj/LaunchScreen.xib
@@ -1,10 +1,19 @@
-
-
+
+
+
+
+
-
+
+
+
+
+ HelveticaNeue-Light
+
+
@@ -13,24 +22,33 @@
-
-
+
+
+
@@ -39,4 +57,7 @@
+
+
+
diff --git a/ios/fancy_cars/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/fancy_cars/Images.xcassets/AppIcon.appiconset/Contents.json
index 118c98f..19882d5 100644
--- a/ios/fancy_cars/Images.xcassets/AppIcon.appiconset/Contents.json
+++ b/ios/fancy_cars/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -1,5 +1,15 @@
{
"images" : [
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "3x"
+ },
{
"idiom" : "iphone",
"size" : "29x29",
@@ -29,6 +39,11 @@
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
+ },
+ {
+ "idiom" : "ios-marketing",
+ "size" : "1024x1024",
+ "scale" : "1x"
}
],
"info" : {
diff --git a/ios/fancy_cars/Images.xcassets/Contents.json b/ios/fancy_cars/Images.xcassets/Contents.json
index 2d92bd5..da4a164 100644
--- a/ios/fancy_cars/Images.xcassets/Contents.json
+++ b/ios/fancy_cars/Images.xcassets/Contents.json
@@ -3,4 +3,4 @@
"version" : 1,
"author" : "xcode"
}
-}
+}
\ No newline at end of file
diff --git a/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Contents.json b/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Contents.json
new file mode 100644
index 0000000..6868ed1
--- /dev/null
+++ b/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "Stylized-Car-Silhouette-Line-Art-2.png",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Stylized-Car-Silhouette-Line-Art-1.png",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Stylized-Car-Silhouette-Line-Art.png",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art-1.png b/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art-1.png
new file mode 100644
index 0000000..7b80ada
Binary files /dev/null and b/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art-1.png differ
diff --git a/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art-2.png b/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art-2.png
new file mode 100644
index 0000000..7b80ada
Binary files /dev/null and b/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art-2.png differ
diff --git a/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art.png b/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art.png
new file mode 100644
index 0000000..7b80ada
Binary files /dev/null and b/ios/fancy_cars/Images.xcassets/car_silhouette.imageset/Stylized-Car-Silhouette-Line-Art.png differ