Git Product home page Git Product logo

demoapp's Introduction

Image Search using Flickr API

Built on top of latest React Native sample(Vanilla version)

Set up requirements

Note: Make sure you have completed the React Native - Environment Setup instructions till "Creating a new application" step, before proceeding.

Install yarn as the dependencies were installed with it. Xcode version was 14.3.1

Open src/App.tsx file and add you flickr api key

Install dependencies and run pods

yarn install

cd ios && pod install

Prepare to run: Start the Metro Server

First, you will need to start Metro, the JavaScript bundler that ships with React Native.

To start Metro, run the following command from the root of your React Native project:

yarn start

Step 2: Start your Application

Let Metro Bundler run in its own terminal. Open a new terminal from the root of your React Native project. Run the following command to start your Android or iOS app:

For Android

yarn android

For iOS

yarn ios

If everything is set up correctly, you should see your new app running in your Android Emulator or iOS Simulator shortly provided you have set up your emulator/simulator correctly.

This is one way to run your app โ€” you can also run it directly from within Android Studio and Xcode respectively.

Known issues

  1. SearchContainer render test unit fails because we run into an issue with @gluestack-ui lib
  2. Due to latest versions, Gluestack Icons are not fully working with gluestack-ui lib, open issue here: software-mansion/react-native-svg#2101
  3. The search result list doesn't ensure merge of a list of unique items because when loading the next page, there's no check on whether the item has moved between pages and therefore an item might come in 2 pages, even after merge. This can affect the recycling of the list which would have caching issues. One work around would be replacing the array with a hashmap
  4. API_KEY and HOST should be in a environment file, so we don't store it on the repo by mistake.
  5. Fail case UX should be handled better, right now is silent in terms of user interface
  6. Right now history view is on the empty results component. It should have its own component
  7. SearchHeader unit test no completed

Suggestions for next Immediate Improvements

  1. History could be in a autosuggestion view as the user types in the input. Tap on a item should search again
  2. Persist history with redux persist?
  3. Strings could be using i18n
  4. There's no assurance the images sizes are appropriate
  5. Increase test coverage
  6. Pull to refresh

Troubleshooting

  1. If you come across xcrun error: SDK "iphoneos" cannot be located while installing pods, fix it running: sudo xcode-select --switch /Applications/Xcode.app
  2. in case you have issues with dependencies caching, try yarn clear:all

If you can't get this to work, see the Troubleshooting page.

Used versions

  • Xcode 14.3.1
  • node 19.7.0
  • yarn 1.22.19
  • pod 1.12.1
  • javac 14.0.2
  • react-native 0.72.3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.