Skip to content

Latest commit

 

History

History
304 lines (179 loc) · 15.1 KB

File metadata and controls

304 lines (179 loc) · 15.1 KB

Mobile Developer

Company best practices

  • You create pull requests with proper name and description 📚
  • You squash merge your pull requests 📚
  • You name your commits properly 📚
  • You know how to create and reference issues
  • You know how to verify when a build check failed
  • You use Slack statuses in line with company policy (remote working, vacationing, in a meeting, etc)
  • You know how to create groups and channels
  • You know how to give praise and add talk topics to a 1:1 meeting
  • You can configure local email client

React

  • You know how to write a function component. 📚
  • You know the difference between function and class components. 📚
  • You know how to define and modify local component's state. 📚
  • You know what Virtual DOM is and how React uses it to render components. 📚
  • You know how to use element events and how to incorporate them in React lifecycle 📚
  • You know component's lifecycle and know how to use each of the phases. 📚
  • You can use useState and useEffect hooks. 📚
  • You know how hook dependency array works. 📚

React-native

https://reactnative.dev/docs/touchablehighlight

https://reactnative.dev/docs/touchableopacity

https://reactnative.dev/docs/touchablewithoutfeedback

https://reactnative.dev/docs/pressable

  • You know how to use and style touchable components
  • You know the difference between touchable components
  • You know when to use FlatList, SectionList and ScrollView
  • You know how to use View, Text, TextInput, Button, Switch, ActivityIndicator, Modal
  • You know how to use RefreshControl for scrollable views 📚
  • You know how to use Image component
  • You know how to handle all the Image events
  • You can create animated Image loader
  • You know how to show alert
  • You know how to render proper alert button variant on iOS and Android
  • You know how to get user's preffered color scheme
  • You know how to listen on color scheme change
  • You can hide keyboard
  • You know how to open url
  • You know how to define stylesheets per component
  • You know how to handle media queries for stylesheets

Application state management

  • You can describe full Redux flow 📚
  • You know how to apply selector functions to useSelector hook. 📚
  • You know how to dispatch actions from React component. 📚
  • You can use one of the listed toolset libraries to create reducers, action types, and action creators more efficiently
  • You know how to create a reducer. 📚
  • You know how to create an action creator 📚
  • You understand benefits of using immutable data structures in Redux applications 📚
  • You know how to use at least one of the libraries that provide immutable data structures in redux state 📚
  • You know how to create a reducer that uses immer 📚
  • You know how to convert immutable structure to regular JavaScript object
  • You know the difference between only changing state object and returning a changed state object

[Optional] Immutable.js

  • You know how to create an immutable structure 📚
  • You know how to read data from the immutable structure
  • You know how to create a new data structure with modified state out of an existing one
  • You know how to use the store with immutable structures using redux-immutable 📚
  • You know how to convert a json structure into immutable structure, and vice-versa
  • You know how to read data from the immutable structure
  • You know how to create a new data structure with modified state out of an existing one
  • You understand the difference between immutable.js and seamless-immutable 📚
  • You know how to create a selector with createSelector function 📚
  • You understand the concept of side effects 📚
  • You know how to take a side effect and dispatch an action based on it 📚
  • You know how to run asynchronous functions (e.g. fetch) after something dispatches an action

HTTP

  • You know what cookies are
  • You know what HTTP headers are
  • You know how to create an HTTP request using native fetch 📚
  • You know how to set HTTP headers in a request
  • You know how to use axios to send HTTP request to an API endpoint 📚
  • You know how to set HTTP headers in a request

Internationalization

  • You know and use React-intl components 📚

Components

  • You know how to display image with proper resize mode

Date & Time

  • You know how to create a Date object for a specific date 📚
  • You know how to compare native date objects

[Optional] react-datetime

  • You know how to format and display a date object using standard format strings

[Optional] moment.js

  • You know how to format and display a date object using standard format strings

[Optional] dayjs

  • You know how to format and display a date object using standard format strings

Testing

  • You know how to test components and functions

Development tools

  • You know how to use React/Redux dev tools
  • You know how to use Network Inspect
  • You know how to use debugger with a real device
  • You know how to run app on a real device
  • You know how to run an app on a simulator
  • You know how to run app on a real device
  • You know how to run an app on an emulator

Tools

  • You know how to extract style values (geometry, colours, fonts, etc.) from a design project 📚
  • You know how to extract image assets from a design project
  • You know how to extract style values (geometry, colours, fonts, etc.) from a design project
  • You know how to extract image assets from a design project

[Optional] Invision

  • You know how to extract style values (geometry, colours, fonts, etc.) from a design project

[Optional] Adobe XD

  • You know how to extract style values (geometry, colours, fonts, etc.) from a design project
  • You know how to extract image assets from a design project

Contribution

We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a pull request which will be later validated by our technical team and added to the main docs.

If you will spot any issues please add them in the Issues section.

Credits

This page is maintained by Apptension team.

You can see more of our work here: Apptension portfolio.

License

MIT License

© 2023 Apptension Sp. z o.o.

Built and maintained by Apptension.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.