Coder Social home page Coder Social logo

ptzagk / pepperoni-app-kit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from futurice/pepperoni-app-kit

0.0 1.0 0.0 752 KB

Pepperoni - React Native App Starter Kit for Android and iOS

Home Page: http://getpepperoni.com

License: MIT License

Python 2.57% Java 2.28% JavaScript 85.16% Objective-C 7.57% Ruby 0.19% Shell 2.24%

pepperoni-app-kit's Introduction

Pepperoni - Empowered by Futurice Futurice React Native Starter Kit

Build Status React Native Sponsored License

We 💚 building apps with React Native, because it helps us create high quality products for both major mobile platforms quickly and cost-effectively.

Getting started on a new app just takes too damn long, though. Most apps need the same basic building blocks and developer infrastructure, and we are bored of reinventing the wheel time and time again.

This Starter Kit reflects the best practices of React Native development we have discovered while building real-world applications for our customers. It is opinionated about tooling, patterns and development practices. It might not be a one-size-fits-all solution for everyone, but feel free to customize it for your needs, or just take inspiration from it.

React Native Starter Kit is a part of Pepperoni, a framework for kickstarting digital product development.

Contents

⚠️ WORK IN PROGRESS | :star: COMING SOON

Not all of the below is yet fully implemented

Application Blueprint

  • Always up-to-date React Native scaffolding
  • Modular and well-documented structure for application code
  • Redux and ImmutableJS for safe and Reasonaboutable™️ state management
  • Redux Loop for Elm-style controlled side effects
  • Redux-managed Navigators for Stack-based and Tabbed navigation with NavigationExperimental
  • Disk-persisted application state caching for offline support and snappy startup performance
  • Clean and testable service layer for interacting with RESTful APIs
  • ⚠️ Sample app to show how to wire it all together
  • ⭐ JSON Web Token authentication
  • ⭐ Multi-environment configuration (dev, staging, production) for iOS and Android
  • ⭐ Built-in error handling and customizable error screens

Testing Setup

  • Mocha for unit testing application code
  • Enzyme and fully mocked React Native for unit testing UI components
  • Istanbul code coverage
  • Utilities for end-to-end integration testing Redux state, including side effects and asynchronous actions

Development & Deployment Infrastructure

  • Auth0 for ready-to-use login and signup screens, user authentication and identity management
  • Bitrise.io configurations for Continuous Integration and beta app distribution
  • ⚠️ Google Tag Manager analytics
  • Microsoft Code Push for Continuous Deployment and instant app updates

Roadmap

  • TODO Crash reporting
  • TODO Android and iOS UI Testing with Calaba.sh?
  • TODO Feature flags?

Getting started

To build your own app on top of the Starter Kit, fork or mirror this repository. Because you can't rename a fork, for serious use we recommend mirroring using these instructions. To contribute to Starter Kit development or just playing around, forking is the way to go.

First, give your application a name by running ./support/rename.sh YourAppName.

Once you have the code downloaded, follow the Setup guide to get started.

Development workflow

After you have set up the project using above instructions, you can use your favorite IDE or text editor to write code, and run the application from the command line. Turn on React Native hot module reloading in the app developer menu to update your application as you code.

To learn how to structure your application and use the Redux application architecture, read the Architecture guide for more details.

Start the application in iOS simulator
$ react-native run-ios
Start the application in Android simulator

(If using the stock emulator, the emulator must be running)

$ react-native run-android
Run unit tests
$ npm test
Run tests every time code changes
$ npm run test:watch
Generate code coverage report
$ npm run coverage

Read the Testing guide for more information about writing tests.

Deployment

Read the Deployment guide to learn how to deploy the application to test devices, app stores, and how to use Code Push to push updates to your users immediately.

Contributing

If you find any problems, please open an issue or submit a fix as a pull request.

We welcome new features, but for large changes let's discuss first to make sure the changes can be accepted and integrated smoothly.

License

MIT License

Credits

This project was initially motivated by Snowflake, a React Native boilerplate by Barton Hammond. It shares some features and design principles for Pepperoni, but it wasn't the right fit for our needs. At this time Snowflake is more mature, so if you like Pepperoni but didn't agree with something we are doing, you should check it out to see if it's a good fit for your app.

pepperoni-app-kit's People

Contributors

jevakallio avatar tino-junge avatar fabriziomoscon avatar ianko avatar janivihervas avatar kimmobrunfeldt avatar mkauppila avatar chadrien avatar

Watchers

James Cloos avatar

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.