An Awesome Project
- by Imrul
Agenda
How we build our product?
What tools/technology we use to build it?
Agenda
How we build our product?
- Team Size, Philosophy
- Development Methodology
Agenda
What tools/technology we use to build it?
- Tech Stack
- Deep drive into Mobile App Development
- CI (Continuous Integration)
- CD (Continuous Delivery & Deployment)
What I can't show/discuss?
App or Screenshots of the app
Business behind the App
Team
How we build our product?
Team Members
7
Developers (Full Stack) - 4
UX - 1
Product Owner (PO) - 1
Development Manager - 1
Team Philosophy
you build it you run it"
fully autonomous team
Development Methodology
How we build our product?
Development Methodology
Agile (Scrum) & Lean
Development Methodology
Rituals:
Sprint Planning
Refinements
Sprint Review
Retrospective
OKR
Definition of Done (DoD)
BDD
experiment fast, fail fast"
fail fast, learn fast"
Development Methodology
PO
UX
PBI
Team
DM
Sprint
Development Methodology
PO
UX
Team
DM
Sprint Planning
Refinement
Sprint Review
Retrospective
OKR
Others
Technology Stack
Mobile
React Native
Native Android (Java)
Native iOS (Objective-c)
Back-end/ Microservices
ASP.NET Core(C#)
GO
Testing
Mobile
Jest
Jasmine
Appium
API
xUnit
specflow
Unit, Integration & Acceptance Testing
DevOps, CI & CD
Mobile
Docker
Fastlane
Jenkins
Crashlatics
TestFlight
Slack
API
Docker
Kubernetes
Azure (ACS, ACR, ..)
Cake Script
Jenkins
Mobile Development
Mobile Development
Why React Native?
Mobile Development
React Native is just a VIEW layer!
Need lots of other tools to develop app with complex interactions.
Mobile Development
- react
- react-mixin
- react-native
- react-native-drawer
- react-native-fabric
- react-native-fs
- react-native-google-analytics-bridge
- react-native-i18n
- react-native-modal-dropdown
- react-native-pdf-view
- react-native-root-toast
- react-native-vector-icons
- react-timer-mixin
Dependent Libraries:
- lodash
- moment
- redux
- react-redux
- react-native-pdf-view
- react-native-root-toast
- react-native-vector-icons
- react-redux
- react-timer-mixin
- redux
- redux-persist
- redux-thunk
- url-parse
Mobile Development
- babel-eslint
- babel-jest
- babel-preset-react-native
- eslint
- eslint-plugin-react
- jest
- jest-react-native
Development Dependent Libraries:
Design Mobile UI
The CSS3 Flexible Box, or flexbox
class JustifyContentBasics extends Component {
render() {
return (
// Try setting `justifyContent` to `center`.
// Try setting `flexDirection` to `row`.
<View style={{
flex: 1,
flexDirection: 'column',
justifyContent: 'space-between',
}}>
<View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} />
<View style={{width: 50, height: 50, backgroundColor: 'skyblue'}} />
<View style={{width: 50, height: 50, backgroundColor: 'steelblue'}} />
</View>
);
}
};
AppRegistry.registerComponent('AwesomeProject', () => JustifyContentBasics);
Design Mobile UI
Flexbox works the same way in React Native as it does in CSS on the web, with a few exceptions. The defaults are different, with flexDirection defaulting to column instead of row, and the flex parameter only supporting a single number.
React Native (Advanced)
- Functional Programming
- Unidirectional Dataflow
- ES6/2015
- Component Development
Native Android (java)
Native iOS (objective-c)
CI & CD
Client CI pipeline
API CD pipeline
Thank You!
Q&A
Achievements
-
After joining Exact, learn and create a prototype android app using React Native within one month. And created an MVP within 6 months and went to Controlled Release(CR) by only 3 developers where one joined after me and another couple of months before me. It was a completely new team, and the business and technologies were also new.
-
Supporting iOS platform within a week, it was easy due to React Native. But we used some android specific components previously and needed to switch those.
-
Developing mobile components with complex user interactions using Redux
-
Created template & theme concept in the app which helps us to change the app’s design rapidly. We change to completely new layout within a week
-
Presenting the app to Stakeholder in KL & Delft in bi-weekly Sprint Review using WebEx and answer Q&A
An Awesome Project
By imrul hasan
An Awesome Project
- 760