BeeEnglish
Elevate your English proficiency with our sleek React Native app. š Interactive lessons, real-life conversations, and a user-friendly experience. Perfect for beginners and advanced learners. Start your language journey now!
Install / Use
/learn @Youth-Tech/BeeEnglishREADME
Bee English
Preview: Youtube
Contents
- Technical
- Project Scaffolding
- Alias
- Core Component
- Custom Component
- š Getting Started
- How to create new Service
- How to create new Flow
- How to use Lottie Animation
Technical
- Package Management
- State Management
- Routing and Navigation
- React Navigation for native mobile
- Connect API
- Local Storage
- MMKV for React Native
- Redux Persist
- Animation Handler
- Reanimated3
- React Native Gesture Handler
- React Native Animated API
- Lottie for React Native
Project Scaffolding
src
āāā @type #define commons type use in project
āāā assets #contain file image, svg, animation config, ... in project
ā
āāā components
ā āāā bases #define base component for project
ā āāā commons #define custom component for project
ā āāā utils #define utils for component
ā
āāā hooks #define custom hook
āāā navigation
ā āāā index.ts #export all method, variable, and components
ā āāā routes.ts #define all screen route in project
ā āāā RootStack.tsx #contain all stack in project
ā āāā RootApp.tsx #contain RootStack, loading modal, message modal
ā āāā NavigationService.ts #define 'navigationRef' and all method to interact with it
ā
āāā redux #define all end point for api
ā āāā reducers #define all reducer in project
ā āāā store #define store for project with Redux Persist - MMKV storage
ā āāā selectors #define all selector in project
ā
āāā screens
ā āāā HomeScreen
ā ā āāā components #define common component for screen
ā ā āāā index.tsx #define and export screen component
ā ā āāā type.ts #define common type for screen
ā āāā ...
ā āāā index.ts #export all screen
ā
āāā services
ā āāā PokemonService.ts #define all method to connect api of service
ā āāā ...
ā āāā index.ts #export all service
ā
āāā themes
ā āāā baseStyles.ts #define base style for style sheet create by method 'makeStyles'
ā āāā colors.ts #define color palette
ā āāā font.ts #define font, fontSize in project
ā āāā normalize.ts #define responsive method
ā āāā style.ts #define utils, type, hook for style of project theme
ā āāā index.ts #export all theme method and constants
ā
āāā utils
ā āāā ...
ā āāā helper.ts #define helper function for project
ā
āāā App.tsx
Alias
- @type: ./src/@type
- @assets: ./src/assets
- @components: ./src/components
- @hooks: ./src/hooks
- @navigation: ./src/navigation
- @redux: ./src/redux
- @screens: ./src/screens
- @themes: ./src/themes
- @utils: ./src/utils
- @services: ./src/services
- @i18n: ./src/i18n
Core Component
- Container
- Block
- Text
- TextInput
- Image
- StatusBar
Custom Component
-
Circle Progress
-
Props
| Name | Type | Default value | Require | | --------------------------------------- | ---------------------- | ------------- | ------- | | step |
number| | ā | | totalStep |number| | ā | | size |number| | ā | | strokeWidth |number| 10 | | | totalStepColor |string|orange| | | stepColor |string|greyLight| | | progressContainerStyles |StyleProp<ViewStyle>|{}| | | progressValueProps |CommonTextProps|undefined| | | onCompleteAnimation(isFinish?: boolean) |Function|()=>{}| | -
How to use
<CircleProgress size={150} step={50} totalSteps={100} strokeWidth={10} />
-
-
Progress
-
Props
| Name | Type | Default value | Require | | --------------------------------------- | ---------------------- | ------------- | ------- | | step |
number| | ā | | totalStep |number| | ā | | strokeHeight |number| 10 | | | totalStepColor |string|orange| | | stepColor |string|greyLight| | | progressContainerStyles |StyleProp<ViewStyle>|{}| | | onCompleteAnimation(isFinish?: boolean) |Function|()=>{}| | -
How to use
<Progress strokeHeight={10} step={80} totalSteps={100} progressContainerStyles={{ paddingHorizontal: 10, }} />
-
-
LinearGradient
-
Props
| Name | Type | Default value | Require | | -------------- | -------------------------------------- | ------------- | ------- | | colors |
string[]| | ā | | containerStyle |StyleProp<ViewStyle>|{}| | | orientation |horizontalorverticalornumber|vertical| | | revers |boolean|false| | | transform |Partial<TransformedProps>|{}| | -
How to use
<LinearGradient colors={['#FFEFAD', '#FFC107']} containerStyle={{ flex: 1 }} transform={{ rotation: 20 }} />
-
-
ShadowBlock
-
Props
- Component is extended all props from
Blockcomponent - External Props
| Name | Type | Default value | Require | | -------------------------- | ----------------- | ------------- | ------- | | shadowHeight |
number| 5 | | | shadowPosition |toporbottom|bottom| | | shadowLabel |string|undefined| | | shadowLabelTextStyle |CommonTextProps|undefined| | | shadowLabelContainerStyle |BlockProps|undefined| | | shadowBackgroundColor |string|#ccc| | | containerPaddingVertical |number|undefined| | | containerPaddingHorizontal |number|undefined| | | containerPaddingRight |number|undefined| | | containerPaddingLeft |number|undefined| | | containerPaddingTop |number|undefined| | | containerPaddingBottom |number|undefined| | - Component is extended all props from
-
How to use
<ShadowBlock row marginTop={20} space="between" paddingHorizontal={20} containerPaddingHorizontal={20} > <Block width={10} height={10} backgroundColor="red" /> <Progress step={10} totalSteps={100} strokeHeight={10} progressContainerStyles={{ flex: 1, marginStart: 10, }} /> </ShadowBlock>
-
-
ShadowButton
-
Props
- Component is extended all props from
Pressable(native component from ReactNative) component - External Props
| Name | Type | Default value | Require | | ----------------- | ----------------------- | ------------- | ------- | | buttonWidth |
numberorstring| 5 | | | buttonHeight |numberorstring|#ccc| | | buttonBorderSize |number|undefined| | | buttonBorderColor |stringorReactNode|undefined| | | containerStyle |StyleProp<ViewStyle>|undefined| | | shadowHeight |number| 5 | | | buttonRadius |number| 5 | | | buttonColor |string|primary| | | disabled |boolean|undefined| | | shadowButtonColor |string|greyLight| | - Component is extended all props from
-
How to use
<ShadowButton buttonHeight={45} buttonBorderSize={2} buttonBorderColor={ <Block style={StyleSh
-
