Visual Studio App Center is mission control to help mobile developers build mobile apps.
Visual Studio App Center Mobile App complements App Center portal to let mobile developers track developed apps' usage from customers in a light and mobile manner. The source code is 100% based on React/React Native/Redux.
Notes Visual Studio App Center App will support all features that you (avid mobile developer) want. It is not a duplicate of App Center portal. Thus, we care your ideas. Open issues now to let us know what we should go next.
Under js folder:
- actions: Action and Action Creator
- sagas: Saga asyn request (encapsulation of actions)
- reducers: State Controllers
- utils: REST API Calls
- store: Redux Store
- containers: Container Components
- pages: Presentational Components
- components: React Components, use react-storybook to polish
- login: User can login via Github/ MSA / Mobile Center Account.
- apps: User can view all apps they have access too and navigate to each app they have access to.
- user: User Information
- notification: notification of apps (build, distribution, crash, analytics)
- app: User can view an app information
- app.distribution.view: User can view all distribution groups for an app.
- app.distribution.addemail: User can add new user emails to a distribution group.
- app.distribution.group: User can create/ delete distribution group.
Search for the TODO tag in the code base to check for incomplete tasks.
- Code-Push
- Continuous Integration with Fastlane and Bitrise, Article
- Mobile Center React Native SDK to track app usage by developers, mobile-center-sdk-react-native
- Push Notification (per app configuration),react-native-push-notification
- Redux Immutable State, redux-immutable
- Reselect : efficient rendering computation.
We would like to thank and appreciate the efforts that the below library authors have made. We build upon your shoulders.
- Microsoft Code Push for dynamic update
- Redux is a predictable state container for reading application, together with React Native
- Redux-Saga is a library that aims to make side effects in reading application easier and better
- react-native-router-flux is a router for reading based on new react native navigation API and redux
- Jest for testing React Native components and UT
- Eslint is a tool for identifying and reporting on patterns found in reading application code
- redux-devtools DevTools for Redux with hot reloading, action replay, and customizable UI
TODO, check with a new setup in a machine.
npm install
react-native start
There are several ways to contribute to the current app:
-
Full stack contribution: If you want to implement one [func sync with backlog](#Working Units -- Sync with Backlog), you need to implement actions, sagas, reducers, api calls, container and presentational containers. Please make sure to write the saga and reducer jest tests, all tests should be passed for a PR. Here it is Microsoft Mobile Center REST API End Point.
-
UI contribution: Design is the most important factor other than implementation, feel free to react-storybook to share your design idea and refactor the react components.
-
Performance contribution: Pick the right tool can greatly accelerate our development life cycle, we believe it. In terms of the development, react community is a fast changing world, we love it. Feel free to tell us what libraries we should use to further improve the dev-cycle or the running performance.
-
Idea contribution: Have you used the Mobile Center Portal? We believe you did. The key design philosophy of mobile version is to let developers retrieve app usage data from customizable notification mechanism. Developers only want to fetch data or message, view them in the mobile. They can further do the app update through the web portal. Do you agree with it? If not, can you tell us your opinions? If yes, what other special requirements do you think about? Tell us, we will add it in to fullfill your needs.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.