Commit f3d26c7

mo khan <mo@mokhan.ca>
2016-12-24 16:04:36
use a deck of cards.
1 parent 2f8b58a
android/app/src/main/java/com/stronglifters/MainApplication.java
@@ -4,6 +4,7 @@ import android.app.Application;
 import android.util.Log;
 
 import com.facebook.react.ReactApplication;
+import com.horcrux.svg.RNSvgPackage;
 import com.oblador.vectoricons.VectorIconsPackage;
 import com.lugg.ReactNativeConfig.ReactNativeConfigPackage;
 import com.facebook.react.ReactInstanceManager;
@@ -27,6 +28,7 @@ public class MainApplication extends Application implements ReactApplication {
     protected List<ReactPackage> getPackages() {
       return Arrays.<ReactPackage>asList(
           new MainReactPackage(),
+            new RNSvgPackage(),
             new VectorIconsPackage(),
             new ReactNativeConfigPackage()
       );
android/app/build.gradle
@@ -135,6 +135,7 @@ android {
 }
 
 dependencies {
+    compile project(':react-native-svg')
     compile project(':react-native-vector-icons')
     compile project(':react-native-config')
     compile fileTree(dir: "libs", include: ["*.jar"])
android/settings.gradle
@@ -1,4 +1,6 @@
 rootProject.name = 'StrongLifters'
+include ':react-native-svg'
+project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android')
 include ':react-native-vector-icons'
 project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
 include ':react-native-config'
app/components/exercise-summary.js
@@ -1,13 +1,22 @@
 import React, { Component } from 'react';
-import { CardItem, Text } from 'native-base';
+import { View } from 'react-native';
+import { Card, CardItem, Text, Thumbnail, Button, Icon, ListItem } from 'native-base';
 
 export default class ExerciseSummary extends Component {
   render() {
     return (
-      <CardItem>
-        <Text>{this.props.name}</Text>
-        {this.workSets().map((set) => <CardItem key={set.id}><Text note>{this.summaryFor(set)}</Text></CardItem>)}
-      </CardItem>
+      <View>
+        <ListItem itemDivider>
+          <Text>{this.props.name}</Text>
+        </ListItem>
+        {
+          this.workSets().map((set) =>
+            <ListItem key={set.id}>
+              <Text>{this.summaryFor(set)}</Text>
+            </ListItem>
+          )
+        }
+      </View>
     );
   }
 
app/components/letter.js
@@ -0,0 +1,12 @@
+import React, { Component } from 'react';
+import Svg, { Circle, Ellipse, G, LinearGradient, RadialGradient, Line, Path, Polygon, Polyline, Rect, Symbol, Text, Use, Defs, Stop } from 'react-native-svg';
+
+export default class Letter extends Component {
+  render() {
+    return (
+      <Svg height="50" width="50">
+        <Text fill="none" stroke="blue" fontSize="25" fontWeight="bold" x="10" y="10" textAnchor="middle" >{this.props.letter}</Text>
+      </Svg>
+    );
+  }
+}
app/components/workout-summary.js
@@ -1,29 +1,31 @@
 import React, { Component } from 'react';
-import { Card, CardItem, Text } from 'native-base';
+import { Image, View } from 'react-native';
+import { H1, Card, CardItem, Text, Thumbnail, Button, Icon, List } from 'native-base';
 import ExerciseSummary from './exercise-summary';
 import moment from 'moment';
+import Letter from './letter';
 
 export default class WorkoutSummary extends Component {
   render() {
+    const date = moment(this.props.occurred_at).format('MMM Do YYYY');
+    const text = `${this.props.body_weight.amount} lbs`;
     return (
-      <Card>
-        <CardItem>
-          <Text>
-            {this.rowHeader()}
-          </Text>
-          {this.exercisesFrom(this.props.exercises)}
+			<Card style={{ flex: 0 }}>
+        <CardItem style={{flex: 1, flexDirection: 'row'}}>
+          <Letter key={this.props.routine_name} letter={this.props.routine_name} />
+          <View style={{flex: 1, flexDirection: 'column'}}>
+            <Text>{date}</Text>
+            <Text note>{text}</Text>
+          </View>
         </CardItem>
-      </Card>
+        <List>
+          {this.exercisesFrom(this.props.exercises)}
+        </List>
+		 </Card>
     )
   }
 
   exercisesFrom(exercises) {
     return exercises.map(exercise => <ExerciseSummary key={exercise.id} {...exercise} />)
   }
-
-  rowHeader() {
-    const date = moment(this.props.occurred_at).format('MMM Do YY');
-    const text = `${this.props.routine_name} ${this.props.body_weight.amount} lbs ${date}`;
-    return text;
-  }
 }
app/screens/dashboard-screen.js
@@ -1,6 +1,6 @@
 import React, { Component } from 'react';
 import { Image } from 'react-native';
-import { Container, Header, Title, Content, Footer, FooterTab, Button, Icon, Spinner } from 'native-base';
+import { Container, Header, Title, Content, Footer, FooterTab, Button, Icon, Spinner, DeckSwiper } from 'native-base';
 import ApplicationComponent from '../components/application-component';
 import WorkoutSummary from '../components/workout-summary';
 import * as events from '../services/events';
@@ -20,7 +20,7 @@ export default class DashboardScreen extends ApplicationComponent {
   }
 
   render() {
-    let content = this.state.isLoading ? <Spinner /> : this.state.workouts.map(workout => <WorkoutSummary key={workout.id} {...workout} />);
+    let content = this.state.isLoading ? <Spinner /> : this.renderWorkouts(this.state.workouts);
     let gravatarUri = this.gravatarUri();
     return (
       <Container>
@@ -39,10 +39,10 @@ export default class DashboardScreen extends ApplicationComponent {
               <Icon name='ios-home' />
             </Button>
             <Button transparent onPress={this.onStartWorkout.bind(this)}>
-              <Icon name='ios-camera-outline' />
+              <Icon name='ios-play' />
             </Button>
             <Button transparent onPress={this.onLogout.bind(this)}>
-              <Icon name='ios-compass' />
+              <Icon name='ios-log-out' />
             </Button>
           </FooterTab>
         </Footer>
@@ -50,6 +50,12 @@ export default class DashboardScreen extends ApplicationComponent {
     );
   }
 
+  renderWorkouts(workouts) {
+    return (
+      <DeckSwiper dataSource={workouts} renderItem={workout => <WorkoutSummary key={workout.id} {...workout} />} />
+    );
+  }
+
   onLoadHistory() {
     this.setState({isLoading: true})
     this.publish({event: events.FETCH_WORKOUTS});
app/screens/login-screen.js
@@ -21,7 +21,7 @@ export default class LoginScreen extends ApplicationComponent {
 
   componentDidMount() {
     super.componentDidMount();
-    //this.notify({username: 'mokha', gravatar_id: '96c04b963c1ab66002bf3455900a2680' }); // TODO:: REMOVE
+    this.notify({username: 'mokha', gravatar_id: '96c04b963c1ab66002bf3455900a2680' }); // TODO:: REMOVE
   }
 
   render() {
ios/StrongLifters.xcodeproj/project.pbxproj
@@ -5,7 +5,6 @@
 	};
 	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 */; };
@@ -46,6 +45,7 @@
 		F8C54714CB1A4CCDAF106977 /* libReactNativeConfig.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A0A6BDF02DFF4E92A99FB2EF /* libReactNativeConfig.a */; };
 		F9E393B1F9C047FC8153CB9D /* SF-UI-Text-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 358410884F0E4DB8B879E468 /* SF-UI-Text-Regular.otf */; };
 		FABE0133F92140FE96A1F47F /* Skia.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B8CD6B4D47874A9894059E6B /* Skia.ttf */; };
+		34BA117E2E994401A87F2CC1 /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 47C347E482694D8FACED6EDC /* libRNSVG.a */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -252,6 +252,8 @@
 		E5D1636BE312436C9D19B544 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
 		EEF2CE3FF6C84648AE3370CB /* Arial Black.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Arial Black.ttf"; path = "../node_modules/native-base/Fonts/Arial Black.ttf"; sourceTree = "<group>"; };
 		F2C00C181EC3401798D27DD4 /* Arial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Arial.ttf; path = "../node_modules/native-base/Fonts/Arial.ttf"; sourceTree = "<group>"; };
+		8F0D22FDA9E84B4E9458E2A9 /* RNSVG.xcodeproj */ = {isa = PBXFileReference; name = "RNSVG.xcodeproj"; path = "../node_modules/react-native-svg/ios/RNSVG.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
+		47C347E482694D8FACED6EDC /* libRNSVG.a */ = {isa = PBXFileReference; name = "libRNSVG.a"; path = "libRNSVG.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -280,6 +282,7 @@
 				139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
 				F8C54714CB1A4CCDAF106977 /* libReactNativeConfig.a in Frameworks */,
 				8943FE0C9BF6410985082DD6 /* libRNVectorIcons.a in Frameworks */,
+				34BA117E2E994401A87F2CC1 /* libRNSVG.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -447,6 +450,7 @@
 				139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
 				1ABE40419C334291B1632D80 /* ReactNativeConfig.xcodeproj */,
 				2CDB2DED7A5A456B9FCC2746 /* RNVectorIcons.xcodeproj */,
+				8F0D22FDA9E84B4E9458E2A9 /* RNSVG.xcodeproj */,
 			);
 			name = Libraries;
 			sourceTree = "<group>";
@@ -887,6 +891,7 @@
 					"$(inherited)",
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
+					"\"$(SRCROOT)/$(TARGET_NAME)\"",
 				);
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StrongLifters.app/StrongLifters";
@@ -905,6 +910,7 @@
 					"$(inherited)",
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
+					"\"$(SRCROOT)/$(TARGET_NAME)\"",
 				);
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StrongLifters.app/StrongLifters";
@@ -986,6 +992,7 @@
 					"$(SRCROOT)/../node_modules/react-native/ReactCommon/**",
 					"$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig",
 					"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
+					"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
 				);
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				MTL_ENABLE_DEBUG_INFO = YES;
@@ -1028,6 +1035,7 @@
 					"$(SRCROOT)/../node_modules/react-native/ReactCommon/**",
 					"$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig",
 					"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
+					"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
 				);
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
icons.txt
@@ -0,0 +1,936 @@
+[
+  "ios-add",
+  "ios-add-circle",
+  "ios-add-circle-outline",
+  "ios-add-outline",
+  "ios-alarm",
+  "ios-alarm-outline",
+  "ios-albums",
+  "ios-albums-outline",
+  "ios-alert",
+  "ios-alert-outline",
+  "ios-american-football",
+  "ios-american-football-outline",
+  "ios-analytics",
+  "ios-analytics-outline",
+  "ios-aperture",
+  "ios-aperture-outline",
+  "ios-apps",
+  "ios-apps-outline",
+  "ios-appstore",
+  "ios-appstore-outline",
+  "ios-archive",
+  "ios-archive-outline",
+  "ios-arrow-back",
+  "ios-arrow-back-outline",
+  "ios-arrow-down",
+  "ios-arrow-down-outline",
+  "ios-arrow-dropdown",
+  "ios-arrow-dropdown-circle",
+  "ios-arrow-dropdown-circle-outline",
+  "ios-arrow-dropdown-outline",
+  "ios-arrow-dropleft",
+  "ios-arrow-dropleft-circle",
+  "ios-arrow-dropleft-circle-outline",
+  "ios-arrow-dropleft-outline",
+  "ios-arrow-dropright",
+  "ios-arrow-dropright-circle",
+  "ios-arrow-dropright-circle-outline",
+  "ios-arrow-dropright-outline",
+  "ios-arrow-dropup",
+  "ios-arrow-dropup-circle",
+  "ios-arrow-dropup-circle-outline",
+  "ios-arrow-dropup-outline",
+  "ios-arrow-forward",
+  "ios-arrow-forward-outline",
+  "ios-arrow-round-back",
+  "ios-arrow-round-back-outline",
+  "ios-arrow-round-down",
+  "ios-arrow-round-down-outline",
+  "ios-arrow-round-forward",
+  "ios-arrow-round-forward-outline",
+  "ios-arrow-round-up",
+  "ios-arrow-round-up-outline",
+  "ios-arrow-up",
+  "ios-arrow-up-outline",
+  "ios-at",
+  "ios-at-outline",
+  "ios-attach",
+  "ios-attach-outline",
+  "ios-backspace",
+  "ios-backspace-outline",
+  "ios-barcode",
+  "ios-barcode-outline",
+  "ios-baseball",
+  "ios-baseball-outline",
+  "ios-basket",
+  "ios-basket-outline",
+  "ios-basketball",
+  "ios-basketball-outline",
+  "ios-battery-charging",
+  "ios-battery-charging-outline",
+  "ios-battery-dead",
+  "ios-battery-dead-outline",
+  "ios-battery-full",
+  "ios-battery-full-outline",
+  "ios-beaker",
+  "ios-beaker-outline",
+  "ios-beer",
+  "ios-beer-outline",
+  "ios-bicycle",
+  "ios-bicycle-outline",
+  "ios-bluetooth",
+  "ios-bluetooth-outline",
+  "ios-boat",
+  "ios-boat-outline",
+  "ios-body",
+  "ios-body-outline",
+  "ios-bonfire",
+  "ios-bonfire-outline",
+  "ios-book",
+  "ios-book-outline",
+  "ios-bookmark",
+  "ios-bookmark-outline",
+  "ios-bookmarks",
+  "ios-bookmarks-outline",
+  "ios-bowtie",
+  "ios-bowtie-outline",
+  "ios-briefcase",
+  "ios-briefcase-outline",
+  "ios-browsers",
+  "ios-browsers-outline",
+  "ios-brush",
+  "ios-brush-outline",
+  "ios-bug",
+  "ios-bug-outline",
+  "ios-build",
+  "ios-build-outline",
+  "ios-bulb",
+  "ios-bulb-outline",
+  "ios-bus",
+  "ios-bus-outline",
+  "ios-cafe",
+  "ios-cafe-outline",
+  "ios-calculator",
+  "ios-calculator-outline",
+  "ios-calendar",
+  "ios-calendar-outline",
+  "ios-call",
+  "ios-call-outline",
+  "ios-camera",
+  "ios-camera-outline",
+  "ios-car",
+  "ios-car-outline",
+  "ios-card",
+  "ios-card-outline",
+  "ios-cart",
+  "ios-cart-outline",
+  "ios-cash",
+  "ios-cash-outline",
+  "ios-chatboxes",
+  "ios-chatboxes-outline",
+  "ios-chatbubbles",
+  "ios-chatbubbles-outline",
+  "ios-checkbox",
+  "ios-checkbox-outline",
+  "ios-checkmark",
+  "ios-checkmark-circle",
+  "ios-checkmark-circle-outline",
+  "ios-checkmark-outline",
+  "ios-clipboard",
+  "ios-clipboard-outline",
+  "ios-clock",
+  "ios-clock-outline",
+  "ios-close",
+  "ios-close-circle",
+  "ios-close-circle-outline",
+  "ios-close-outline",
+  "ios-closed-captioning",
+  "ios-closed-captioning-outline",
+  "ios-cloud",
+  "ios-cloud-circle",
+  "ios-cloud-circle-outline",
+  "ios-cloud-done",
+  "ios-cloud-done-outline",
+  "ios-cloud-download",
+  "ios-cloud-download-outline",
+  "ios-cloud-outline",
+  "ios-cloud-upload",
+  "ios-cloud-upload-outline",
+  "ios-cloudy",
+  "ios-cloudy-night",
+  "ios-cloudy-night-outline",
+  "ios-cloudy-outline",
+  "ios-code",
+  "ios-code-download",
+  "ios-code-download-outline",
+  "ios-code-outline",
+  "ios-code-working",
+  "ios-code-working-outline",
+  "ios-cog",
+  "ios-cog-outline",
+  "ios-color-fill",
+  "ios-color-fill-outline",
+  "ios-color-filter",
+  "ios-color-filter-outline",
+  "ios-color-palette",
+  "ios-color-palette-outline",
+  "ios-color-wand",
+  "ios-color-wand-outline",
+  "ios-compass",
+  "ios-compass-outline",
+  "ios-construct",
+  "ios-construct-outline",
+  "ios-contact",
+  "ios-contact-outline",
+  "ios-contacts",
+  "ios-contacts-outline",
+  "ios-contract",
+  "ios-contract-outline",
+  "ios-contrast",
+  "ios-contrast-outline",
+  "ios-copy",
+  "ios-copy-outline",
+  "ios-create",
+  "ios-create-outline",
+  "ios-crop",
+  "ios-crop-outline",
+  "ios-cube",
+  "ios-cube-outline",
+  "ios-cut",
+  "ios-cut-outline",
+  "ios-desktop",
+  "ios-desktop-outline",
+  "ios-disc",
+  "ios-disc-outline",
+  "ios-document",
+  "ios-document-outline",
+  "ios-done-all",
+  "ios-done-all-outline",
+  "ios-download",
+  "ios-download-outline",
+  "ios-easel",
+  "ios-easel-outline",
+  "ios-egg",
+  "ios-egg-outline",
+  "ios-exit",
+  "ios-exit-outline",
+  "ios-expand",
+  "ios-expand-outline",
+  "ios-eye",
+  "ios-eye-off",
+  "ios-eye-off-outline",
+  "ios-eye-outline",
+  "ios-fastforward",
+  "ios-fastforward-outline",
+  "ios-female",
+  "ios-female-outline",
+  "ios-filing",
+  "ios-filing-outline",
+  "ios-film",
+  "ios-film-outline",
+  "ios-finger-print",
+  "ios-finger-print-outline",
+  "ios-flag",
+  "ios-flag-outline",
+  "ios-flame",
+  "ios-flame-outline",
+  "ios-flash",
+  "ios-flash-outline",
+  "ios-flask",
+  "ios-flask-outline",
+  "ios-flower",
+  "ios-flower-outline",
+  "ios-folder",
+  "ios-folder-open",
+  "ios-folder-open-outline",
+  "ios-folder-outline",
+  "ios-football",
+  "ios-football-outline",
+  "ios-funnel",
+  "ios-funnel-outline",
+  "ios-game-controller-a",
+  "ios-game-controller-a-outline",
+  "ios-game-controller-b",
+  "ios-game-controller-b-outline",
+  "ios-git-branch",
+  "ios-git-branch-outline",
+  "ios-git-commit",
+  "ios-git-commit-outline",
+  "ios-git-compare",
+  "ios-git-compare-outline",
+  "ios-git-merge",
+  "ios-git-merge-outline",
+  "ios-git-network",
+  "ios-git-network-outline",
+  "ios-git-pull-request",
+  "ios-git-pull-request-outline",
+  "ios-glasses",
+  "ios-glasses-outline",
+  "ios-globe",
+  "ios-globe-outline",
+  "ios-grid",
+  "ios-grid-outline",
+  "ios-hammer",
+  "ios-hammer-outline",
+  "ios-hand",
+  "ios-hand-outline",
+  "ios-happy",
+  "ios-happy-outline",
+  "ios-headset",
+  "ios-headset-outline",
+  "ios-heart",
+  "ios-heart-outline",
+  "ios-help",
+  "ios-help-buoy",
+  "ios-help-buoy-outline",
+  "ios-help-circle",
+  "ios-help-circle-outline",
+  "ios-help-outline",
+  "ios-home",
+  "ios-home-outline",
+  "ios-ice-cream",
+  "ios-ice-cream-outline",
+  "ios-image",
+  "ios-image-outline",
+  "ios-images",
+  "ios-images-outline",
+  "ios-infinite",
+  "ios-infinite-outline",
+  "ios-information",
+  "ios-information-circle",
+  "ios-information-circle-outline",
+  "ios-information-outline",
+  "ios-ionic",
+  "ios-ionic-outline",
+  "ios-ionitron",
+  "ios-ionitron-outline",
+  "ios-jet",
+  "ios-jet-outline",
+  "ios-key",
+  "ios-key-outline",
+  "ios-keypad",
+  "ios-keypad-outline",
+  "ios-laptop",
+  "ios-laptop-outline",
+  "ios-leaf",
+  "ios-leaf-outline",
+  "ios-link",
+  "ios-link-outline",
+  "ios-list",
+  "ios-list-box",
+  "ios-list-box-outline",
+  "ios-list-outline",
+  "ios-locate",
+  "ios-locate-outline",
+  "ios-lock",
+  "ios-lock-outline",
+  "ios-log-in",
+  "ios-log-in-outline",
+  "ios-log-out",
+  "ios-log-out-outline",
+  "ios-magnet",
+  "ios-magnet-outline",
+  "ios-mail",
+  "ios-mail-open",
+  "ios-mail-open-outline",
+  "ios-mail-outline",
+  "ios-male",
+  "ios-male-outline",
+  "ios-man",
+  "ios-man-outline",
+  "ios-map",
+  "ios-map-outline",
+  "ios-medal",
+  "ios-medal-outline",
+  "ios-medical",
+  "ios-medical-outline",
+  "ios-medkit",
+  "ios-medkit-outline",
+  "ios-megaphone",
+  "ios-megaphone-outline",
+  "ios-menu",
+  "ios-menu-outline",
+  "ios-mic",
+  "ios-mic-off",
+  "ios-mic-off-outline",
+  "ios-mic-outline",
+  "ios-microphone",
+  "ios-microphone-outline",
+  "ios-moon",
+  "ios-moon-outline",
+  "ios-more",
+  "ios-more-outline",
+  "ios-move",
+  "ios-move-outline",
+  "ios-musical-note",
+  "ios-musical-note-outline",
+  "ios-musical-notes",
+  "ios-musical-notes-outline",
+  "ios-navigate",
+  "ios-navigate-outline",
+  "ios-no-smoking",
+  "ios-no-smoking-outline",
+  "ios-notifications",
+  "ios-notifications-off",
+  "ios-notifications-off-outline",
+  "ios-notifications-outline",
+  "ios-nuclear",
+  "ios-nuclear-outline",
+  "ios-nutrition",
+  "ios-nutrition-outline",
+  "ios-open",
+  "ios-open-outline",
+  "ios-options",
+  "ios-options-outline",
+  "ios-outlet",
+  "ios-outlet-outline",
+  "ios-paper",
+  "ios-paper-outline",
+  "ios-paper-plane",
+  "ios-paper-plane-outline",
+  "ios-partly-sunny",
+  "ios-partly-sunny-outline",
+  "ios-pause",
+  "ios-pause-outline",
+  "ios-paw",
+  "ios-paw-outline",
+  "ios-people",
+  "ios-people-outline",
+  "ios-person",
+  "ios-person-add",
+  "ios-person-add-outline",
+  "ios-person-outline",
+  "ios-phone-landscape",
+  "ios-phone-landscape-outline",
+  "ios-phone-portrait",
+  "ios-phone-portrait-outline",
+  "ios-photos",
+  "ios-photos-outline",
+  "ios-pie",
+  "ios-pie-outline",
+  "ios-pin",
+  "ios-pin-outline",
+  "ios-pint",
+  "ios-pint-outline",
+  "ios-pizza",
+  "ios-pizza-outline",
+  "ios-plane",
+  "ios-plane-outline",
+  "ios-planet",
+  "ios-planet-outline",
+  "ios-play",
+  "ios-play-outline",
+  "ios-podium",
+  "ios-podium-outline",
+  "ios-power",
+  "ios-power-outline",
+  "ios-pricetag",
+  "ios-pricetag-outline",
+  "ios-pricetags",
+  "ios-pricetags-outline",
+  "ios-print",
+  "ios-print-outline",
+  "ios-pulse",
+  "ios-pulse-outline",
+  "ios-qr-scanner",
+  "ios-qr-scanner-outline",
+  "ios-quote",
+  "ios-quote-outline",
+  "ios-radio",
+  "ios-radio-button-off",
+  "ios-radio-button-off-outline",
+  "ios-radio-button-on",
+  "ios-radio-button-on-outline",
+  "ios-radio-outline",
+  "ios-rainy",
+  "ios-rainy-outline",
+  "ios-recording",
+  "ios-recording-outline",
+  "ios-redo",
+  "ios-redo-outline",
+  "ios-refresh",
+  "ios-refresh-circle",
+  "ios-refresh-circle-outline",
+  "ios-refresh-outline",
+  "ios-remove",
+  "ios-remove-circle",
+  "ios-remove-circle-outline",
+  "ios-remove-outline",
+  "ios-reorder",
+  "ios-reorder-outline",
+  "ios-repeat",
+  "ios-repeat-outline",
+  "ios-resize",
+  "ios-resize-outline",
+  "ios-restaurant",
+  "ios-restaurant-outline",
+  "ios-return-left",
+  "ios-return-left-outline",
+  "ios-return-right",
+  "ios-return-right-outline",
+  "ios-reverse-camera",
+  "ios-reverse-camera-outline",
+  "ios-rewind",
+  "ios-rewind-outline",
+  "ios-ribbon",
+  "ios-ribbon-outline",
+  "ios-rose",
+  "ios-rose-outline",
+  "ios-sad",
+  "ios-sad-outline",
+  "ios-school",
+  "ios-school-outline",
+  "ios-search",
+  "ios-search-outline",
+  "ios-send",
+  "ios-send-outline",
+  "ios-settings",
+  "ios-settings-outline",
+  "ios-share",
+  "ios-share-alt",
+  "ios-share-alt-outline",
+  "ios-share-outline",
+  "ios-shirt",
+  "ios-shirt-outline",
+  "ios-shuffle",
+  "ios-shuffle-outline",
+  "ios-skip-backward",
+  "ios-skip-backward-outline",
+  "ios-skip-forward",
+  "ios-skip-forward-outline",
+  "ios-snow",
+  "ios-snow-outline",
+  "ios-speedometer",
+  "ios-speedometer-outline",
+  "ios-square",
+  "ios-square-outline",
+  "ios-star",
+  "ios-star-half",
+  "ios-star-half-outline",
+  "ios-star-outline",
+  "ios-stats",
+  "ios-stats-outline",
+  "ios-stopwatch",
+  "ios-stopwatch-outline",
+  "ios-subway",
+  "ios-subway-outline",
+  "ios-sunny",
+  "ios-sunny-outline",
+  "ios-swap",
+  "ios-swap-outline",
+  "ios-switch",
+  "ios-switch-outline",
+  "ios-sync",
+  "ios-sync-outline",
+  "ios-tablet-landscape",
+  "ios-tablet-landscape-outline",
+  "ios-tablet-portrait",
+  "ios-tablet-portrait-outline",
+  "ios-tennisball",
+  "ios-tennisball-outline",
+  "ios-text",
+  "ios-text-outline",
+  "ios-thermometer",
+  "ios-thermometer-outline",
+  "ios-thumbs-down",
+  "ios-thumbs-down-outline",
+  "ios-thumbs-up",
+  "ios-thumbs-up-outline",
+  "ios-thunderstorm",
+  "ios-thunderstorm-outline",
+  "ios-time",
+  "ios-time-outline",
+  "ios-timer",
+  "ios-timer-outline",
+  "ios-train",
+  "ios-train-outline",
+  "ios-transgender",
+  "ios-transgender-outline",
+  "ios-trash",
+  "ios-trash-outline",
+  "ios-trending-down",
+  "ios-trending-down-outline",
+  "ios-trending-up",
+  "ios-trending-up-outline",
+  "ios-trophy",
+  "ios-trophy-outline",
+  "ios-umbrella",
+  "ios-umbrella-outline",
+  "ios-undo",
+  "ios-undo-outline",
+  "ios-unlock",
+  "ios-unlock-outline",
+  "ios-videocam",
+  "ios-videocam-outline",
+  "ios-volume-down",
+  "ios-volume-down-outline",
+  "ios-volume-mute",
+  "ios-volume-mute-outline",
+  "ios-volume-off",
+  "ios-volume-off-outline",
+  "ios-volume-up",
+  "ios-volume-up-outline",
+  "ios-walk",
+  "ios-walk-outline",
+  "ios-warning",
+  "ios-warning-outline",
+  "ios-watch",
+  "ios-watch-outline",
+  "ios-water",
+  "ios-water-outline",
+  "ios-wifi",
+  "ios-wifi-outline",
+  "ios-wine",
+  "ios-wine-outline",
+  "ios-woman",
+  "ios-woman-outline",
+  "logo-android",
+  "logo-angular",
+  "logo-apple",
+  "logo-bitcoin",
+  "logo-buffer",
+  "logo-chrome",
+  "logo-codepen",
+  "logo-css3",
+  "logo-designernews",
+  "logo-dribbble",
+  "logo-dropbox",
+  "logo-euro",
+  "logo-facebook",
+  "logo-foursquare",
+  "logo-freebsd-devil",
+  "logo-github",
+  "logo-google",
+  "logo-googleplus",
+  "logo-hackernews",
+  "logo-html5",
+  "logo-instagram",
+  "logo-javascript",
+  "logo-linkedin",
+  "logo-markdown",
+  "logo-nodejs",
+  "logo-octocat",
+  "logo-pinterest",
+  "logo-playstation",
+  "logo-python",
+  "logo-reddit",
+  "logo-rss",
+  "logo-sass",
+  "logo-skype",
+  "logo-snapchat",
+  "logo-steam",
+  "logo-tumblr",
+  "logo-tux",
+  "logo-twitch",
+  "logo-twitter",
+  "logo-usd",
+  "logo-vimeo",
+  "logo-whatsapp",
+  "logo-windows",
+  "logo-wordpress",
+  "logo-xbox",
+  "logo-yahoo",
+  "logo-yen",
+  "logo-youtube",
+  "md-add",
+  "md-add-circle",
+  "md-alarm",
+  "md-albums",
+  "md-alert",
+  "md-american-football",
+  "md-analytics",
+  "md-aperture",
+  "md-apps",
+  "md-appstore",
+  "md-archive",
+  "md-arrow-back",
+  "md-arrow-down",
+  "md-arrow-dropdown",
+  "md-arrow-dropdown-circle",
+  "md-arrow-dropleft",
+  "md-arrow-dropleft-circle",
+  "md-arrow-dropright",
+  "md-arrow-dropright-circle",
+  "md-arrow-dropup",
+  "md-arrow-dropup-circle",
+  "md-arrow-forward",
+  "md-arrow-round-back",
+  "md-arrow-round-down",
+  "md-arrow-round-forward",
+  "md-arrow-round-up",
+  "md-arrow-up",
+  "md-at",
+  "md-attach",
+  "md-backspace",
+  "md-barcode",
+  "md-baseball",
+  "md-basket",
+  "md-basketball",
+  "md-battery-charging",
+  "md-battery-dead",
+  "md-battery-full",
+  "md-beaker",
+  "md-beer",
+  "md-bicycle",
+  "md-bluetooth",
+  "md-boat",
+  "md-body",
+  "md-bonfire",
+  "md-book",
+  "md-bookmark",
+  "md-bookmarks",
+  "md-bowtie",
+  "md-briefcase",
+  "md-browsers",
+  "md-brush",
+  "md-bug",
+  "md-build",
+  "md-bulb",
+  "md-bus",
+  "md-cafe",
+  "md-calculator",
+  "md-calendar",
+  "md-call",
+  "md-camera",
+  "md-car",
+  "md-card",
+  "md-cart",
+  "md-cash",
+  "md-chatboxes",
+  "md-chatbubbles",
+  "md-checkbox",
+  "md-checkbox-outline",
+  "md-checkmark",
+  "md-checkmark-circle",
+  "md-checkmark-circle-outline",
+  "md-clipboard",
+  "md-clock",
+  "md-close",
+  "md-close-circle",
+  "md-closed-captioning",
+  "md-cloud",
+  "md-cloud-circle",
+  "md-cloud-done",
+  "md-cloud-download",
+  "md-cloud-outline",
+  "md-cloud-upload",
+  "md-cloudy",
+  "md-cloudy-night",
+  "md-code",
+  "md-code-download",
+  "md-code-working",
+  "md-cog",
+  "md-color-fill",
+  "md-color-filter",
+  "md-color-palette",
+  "md-color-wand",
+  "md-compass",
+  "md-construct",
+  "md-contact",
+  "md-contacts",
+  "md-contract",
+  "md-contrast",
+  "md-copy",
+  "md-create",
+  "md-crop",
+  "md-cube",
+  "md-cut",
+  "md-desktop",
+  "md-disc",
+  "md-document",
+  "md-done-all",
+  "md-download",
+  "md-easel",
+  "md-egg",
+  "md-exit",
+  "md-expand",
+  "md-eye",
+  "md-eye-off",
+  "md-fastforward",
+  "md-female",
+  "md-filing",
+  "md-film",
+  "md-finger-print",
+  "md-flag",
+  "md-flame",
+  "md-flash",
+  "md-flask",
+  "md-flower",
+  "md-folder",
+  "md-folder-open",
+  "md-football",
+  "md-funnel",
+  "md-game-controller-a",
+  "md-game-controller-b",
+  "md-git-branch",
+  "md-git-commit",
+  "md-git-compare",
+  "md-git-merge",
+  "md-git-network",
+  "md-git-pull-request",
+  "md-glasses",
+  "md-globe",
+  "md-grid",
+  "md-hammer",
+  "md-hand",
+  "md-happy",
+  "md-headset",
+  "md-heart",
+  "md-heart-outline",
+  "md-help",
+  "md-help-buoy",
+  "md-help-circle",
+  "md-home",
+  "md-ice-cream",
+  "md-image",
+  "md-images",
+  "md-infinite",
+  "md-information",
+  "md-information-circle",
+  "md-ionic",
+  "md-ionitron",
+  "md-jet",
+  "md-key",
+  "md-keypad",
+  "md-laptop",
+  "md-leaf",
+  "md-link",
+  "md-list",
+  "md-list-box",
+  "md-locate",
+  "md-lock",
+  "md-log-in",
+  "md-log-out",
+  "md-magnet",
+  "md-mail",
+  "md-mail-open",
+  "md-male",
+  "md-man",
+  "md-map",
+  "md-medal",
+  "md-medical",
+  "md-medkit",
+  "md-megaphone",
+  "md-menu",
+  "md-mic",
+  "md-mic-off",
+  "md-microphone",
+  "md-moon",
+  "md-more",
+  "md-move",
+  "md-musical-note",
+  "md-musical-notes",
+  "md-navigate",
+  "md-no-smoking",
+  "md-notifications",
+  "md-notifications-off",
+  "md-notifications-outline",
+  "md-nuclear",
+  "md-nutrition",
+  "md-open",
+  "md-options",
+  "md-outlet",
+  "md-paper",
+  "md-paper-plane",
+  "md-partly-sunny",
+  "md-pause",
+  "md-paw",
+  "md-people",
+  "md-person",
+  "md-person-add",
+  "md-phone-landscape",
+  "md-phone-portrait",
+  "md-photos",
+  "md-pie",
+  "md-pin",
+  "md-pint",
+  "md-pizza",
+  "md-plane",
+  "md-planet",
+  "md-play",
+  "md-podium",
+  "md-power",
+  "md-pricetag",
+  "md-pricetags",
+  "md-print",
+  "md-pulse",
+  "md-qr-scanner",
+  "md-quote",
+  "md-radio",
+  "md-radio-button-off",
+  "md-radio-button-on",
+  "md-rainy",
+  "md-recording",
+  "md-redo",
+  "md-refresh",
+  "md-refresh-circle",
+  "md-remove",
+  "md-remove-circle",
+  "md-reorder",
+  "md-repeat",
+  "md-resize",
+  "md-restaurant",
+  "md-return-left",
+  "md-return-right",
+  "md-reverse-camera",
+  "md-rewind",
+  "md-ribbon",
+  "md-rose",
+  "md-sad",
+  "md-school",
+  "md-search",
+  "md-send",
+  "md-settings",
+  "md-share",
+  "md-share-alt",
+  "md-shirt",
+  "md-shuffle",
+  "md-skip-backward",
+  "md-skip-forward",
+  "md-snow",
+  "md-speedometer",
+  "md-square",
+  "md-square-outline",
+  "md-star",
+  "md-star-half",
+  "md-star-outline",
+  "md-stats",
+  "md-stopwatch",
+  "md-subway",
+  "md-sunny",
+  "md-swap",
+  "md-switch",
+  "md-sync",
+  "md-tablet-landscape",
+  "md-tablet-portrait",
+  "md-tennisball",
+  "md-text",
+  "md-thermometer",
+  "md-thumbs-down",
+  "md-thumbs-up",
+  "md-thunderstorm",
+  "md-time",
+  "md-timer",
+  "md-train",
+  "md-transgender",
+  "md-trash",
+  "md-trending-down",
+  "md-trending-up",
+  "md-trophy",
+  "md-umbrella",
+  "md-undo",
+  "md-unlock",
+  "md-videocam",
+  "md-volume-down",
+  "md-volume-mute",
+  "md-volume-off",
+  "md-volume-up",
+  "md-walk",
+  "md-warning",
+  "md-watch",
+  "md-water",
+  "md-wifi",
+  "md-wine",
+  "md-woman"
+]
package.json
@@ -12,6 +12,7 @@
     "react": "15.4.1",
     "react-native": "0.39.2",
     "react-native-config": "^0.2.1",
+    "react-native-svg": "^4.4.1",
     "tcomb-form-native": "^0.6.3"
   },
   "devDependencies": {
@@ -22,6 +23,8 @@
   },
   "jest": {
     "preset": "react-native",
-    "transformIgnorePatterns": [ "node_modules/(?!react-native|native-base|react-clone-referenced-element|tcomb-form-native)" ]
+    "transformIgnorePatterns": [
+      "node_modules/(?!react-native|native-base|react-clone-referenced-element|tcomb-form-native)"
+    ]
   }
 }
yarn.lock
@@ -1007,7 +1007,7 @@ color-string@^0.3.0:
   dependencies:
     color-name "^1.0.0"
 
-color@~0.11.1:
+color@^0.11.1, color@~0.11.1:
   version "0.11.4"
   resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
   dependencies:
@@ -3045,6 +3045,13 @@ react-native-keyboard-aware-scroll-view@0.2.0:
   dependencies:
     react-timer-mixin "^0.13.3"
 
+react-native-svg@^4.4.1:
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-4.4.1.tgz#8c0f27c0236344b8c8a45ed3f6461dd89233be81"
+  dependencies:
+    color "^0.11.1"
+    lodash "^4.0.0"
+
 react-native-vector-icons@2.x.x:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-2.1.0.tgz#37ff40e2fc753a56624846e7471282b818b92edc"