This project was built for assessment purposes of Jesse Lawler (that's me!) by the team at https://PrizePicks.com. It's based on Front_End_Assessment.pdf in the /assets/pdf directory of this repository.
- This was implemented using React-Native, rather than React. (Brenden said that either option was fine.)
-
Prior to this project I had near-zero knowledge of Pokemon, so I may have made incorrect guesses as to what Pokemon users want, what an "evolution" is, etc. But I think I've more than covered the basics.
-
Beyond the Home screen, additional data is presented in raw JSON format - and not at all pretty.
-
I did my coding on Android, and I like the app's feel on Android better than iOS at present. In particular, something about my setup of react-native-vector-icons isn't working on iOS, so I'm using lame hacks to avoid the use of icons on iOS. This definitely would be a top to-fix item if I had more time.
-
I've locked the app in Portrait mode.
-
I haven't tested this on tablet-sized devices; I recommend handhelds when you review.
-
I'd have had another button (probably a caret in the upper-right) to hide the Search History panel, in addition to the "hide search history" toggling button that is there now.
-
I haven't given thought to potential concurrency issues, since the app is almost entirely read-only. (I guess certain interface elements such as the Search History could be shared, although why anyone would want that eludes me.)
-
One thing I discovered when I was too deep in to change course: The react-native-paper interface for TextInput doesn't have a focus() function that can be called on it. This annoyed me, because I really would have liked to auto-focus on the text entry the moment the user enters the app, but no luck. (I still like the library, fwiw.)
-
I didn't add any automated testing. There's a trivial jest test to prove it runs, which you can trigger with:
yarn jest
- ESLint yields exactly 0 errors, 0 warnings. Huzzah! Confirm that with:
yarn lint
Note: Make sure you have completed the React Native - Environment Setup instructions up through "Creating a new application" step, before proceeding.
Please also be sure that you have Android Studio (which provides you an Android Emulator if you lack a device) and XCode (samesies for iOS) installed on your testing machine.
Open a new terminal from the root of your React Native project.
Run the following commands to start your Android or iOS app:
yarn
yarn android
yarn
cd ios
pod install
cd ..
yarn ios
Important Note: On iOS (at least with a physical device), the above commands will install the app, but not launch it. You'll see the generic icon for a new app named PrizePicksDemo which you can then click and open normally.
You've successfully run the app. 🥳
- Contact Jesse: (323) 513-8779
If you can't get this to work, send appropriate hate-mail to: business@JesseLawler.com