Compare commits

...

4 commits

7 changed files with 46 additions and 128 deletions

38
NOTES.md Normal file
View file

@ -0,0 +1,38 @@
# Notes de développement
Ce fichier permet de regrouper les différentes informations sur des décisions actuelles, comme des changements de version ou des choix de technologie, tout cela dans le but de ne pas répéter les mêmes erreurs.
Ces notes pouvant évoluer dans le temps, leur date d'écriture est aussi indiquée.
## _2020-06-23_ | Expo
Expo est une surcouche à react native permettant de simplifier le processus de build. Le projet à commencé en l'utilisant, mais de nombreux problèmes ont été rencontrés :
* Augmentation importante de la taille de l'application
* Augmentation importante du temps de démarrage
* Impossibilité d'utiliser certaines librairies
* Obligation d'utiliser une version de react-native spécifique
* Impossibilité d'utiliser le moteur Hermes sur Android
Pour ces raisons, il a été décidé de l'abandonner pour passer à un développement en react-native pur.
[Site officiel](https://docs.expo.io/)
## _2020-06-23_ | react-native-keychain
Rester en v6.0.0 car à partir de la v6.1.0, il est nécessaire de passer du sdk 28 au 29. Il est donc necessaire de mesurer l'impact d'un tel changement.
[Dépot](https://github.com/oblador/react-native-keychain) | [Référence](https://github.com/oblador/react-native-keychain/issues/351)
## _2020-06-23_ | react-native-mapbox-gl
Librairie utilisée pour afficher une carte en utilisant OSM. N'a pas été utilisée car augmente la taille de l'apk de quelques Mo et rend la compilation plus difficile (il est nécessaire d'augmenter la taille du java heap dans gradle.properties).
[Dépot](https://github.com/react-native-mapbox-gl/maps)
## _2020-06-23_ |react-native-webview
Rester en v10.1.1 car à partir de la v10.2.0, une erreur de compilation de la librairie est présente.
[Dépot](https://github.com/react-native-community/react-native-webview) | [Référence](https://github.com/react-native-community/react-native-webview/issues/1437)

View file

@ -29,6 +29,8 @@ Cette application utilisait initialement Expo, permettant de simplifier grandeme
## [Installer l'application depuis ce dépot](INSTALL.md)
## [Notes sur l'état actuel du projet](NOTES.md)
## Liens utiles
* [Documentation React Native](https://reactnative.dev/docs/getting-started) (La techno de base)
* [Documentation React Native Paper](https://callstack.github.io/react-native-paper/) (Le framework d'UI)

View file

@ -2,10 +2,10 @@
buildscript {
ext {
buildToolsVersion = "29.0.3"
buildToolsVersion = "28.0.3"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
compileSdkVersion = 28
targetSdkVersion = 28
}
repositories {
google()

View file

@ -24,7 +24,6 @@
"@react-native-community/masked-view": "^0.1.10",
"@react-native-community/push-notification-ios": "^1.2.2",
"@react-native-community/slider": "^3.0.0",
"@react-native-mapbox-gl/maps": "^8.1.0-rc.1",
"@react-navigation/bottom-tabs": "^5.5.2",
"@react-navigation/native": "^5.5.1",
"@react-navigation/stack": "^5.5.1",
@ -40,7 +39,7 @@
"react-native-collapsible": "^1.5.2",
"react-native-gesture-handler": "^1.6.1",
"react-native-image-modal": "^1.0.8",
"react-native-keychain": "^6.1.1",
"react-native-keychain": "6.0.0",
"react-native-linear-gradient": "^2.5.6",
"react-native-localize": "^1.4.0",
"react-native-modalize": "^2.0.4",
@ -53,7 +52,7 @@
"react-native-screens": "^2.9.0",
"react-native-splash-screen": "^3.2.0",
"react-native-vector-icons": "^6.6.0",
"react-native-webview": "^9.4.0",
"react-native-webview": "10.1.1",
"react-navigation-collapsible": "^5.6.1",
"react-navigation-header-buttons": "^4.0.2"
},
@ -62,7 +61,7 @@
"@babel/runtime": "^7.6.2",
"@react-native-community/eslint-config": "^0.0.5",
"babel-jest": "^25.5.1",
"eslint": "^5.0.0",
"eslint": "6.5.1",
"flow-bin": "^0.123.0",
"jest": "^25.5.3",
"jest-extended": "^0.11.5",

View file

@ -30,7 +30,6 @@ import ClubAboutScreen from "../screens/Amicale/Clubs/ClubAboutScreen";
import ClubDisplayScreen from "../screens/Amicale/Clubs/ClubDisplayScreen";
import {createScreenCollapsibleStack, getWebsiteStack} from "../utils/CollapsibleUtils";
import BugReportScreen from "../screens/Other/FeedbackScreen";
import MapScreen from "../screens/Services/MapScreen";
const modalTransition = Platform.OS === 'ios' ? TransitionPresets.ModalPresentationIOS : TransitionPresets.ModalSlideFromBottomIOS;
@ -107,13 +106,6 @@ function MainStackComponent(props: { createTabNavigator: () => React.Node }) {
{getWebsiteStack("available-rooms", MainStack, AvailableRoomScreen, i18n.t('screens.availableRooms'))}
{getWebsiteStack("bib", MainStack, BibScreen, i18n.t('screens.bib'))}
{createScreenCollapsibleStack("self-menu", MainStack, SelfMenuScreen, i18n.t('screens.menuSelf'))}
<MainStack.Screen
name="map"
component={MapScreen}
options={{
title: i18n.t('screens.map'),
}}
/>
{/* STUDENTS */}
{createScreenCollapsibleStack("proximo", MainStack, ProximoMainScreen, i18n.t('screens.proximo'))}

View file

@ -1,104 +0,0 @@
// @flow
import * as React from 'react';
import {View} from 'react-native';
import {withTheme} from 'react-native-paper';
import {StackNavigationProp} from "@react-navigation/stack";
import type {CustomTheme} from "../../managers/ThemeManager";
import MapboxGL from "@react-native-mapbox-gl/maps";
type Props = {
navigation: StackNavigationProp,
theme: CustomTheme,
}
type State = {
featureCollection: Array<Object>,
}
MapboxGL.setAccessToken("pk.eyJ1IjoiYW1pY2FsZS1pbnNhdCIsImEiOiJja2JpM2d5OHYwYmdiMndxdnV4bmh6bGFwIn0.qiOwbs2_HRaQGUOpBDjbsQ");
// const styles = {
// icon: {
// iconImage: exampleIcon,
// iconAllowOverlap: true,
// },
// };
// const FEATURES = [{
// type: 'Feature',
// geometry: {
// type: 'Point',
// coordinates: [1.4669608, 43.5698867],
// }
// }]
/**
* Class defining the app's map screen.
*/
class MapScreen extends React.Component<Props, State> {
map: { current: null | MapboxGL.MapView };
constructor() {
super();
this.map = React.createRef();
this.state = {
featureCollection: [],
};
}
componentDidMount() {
MapboxGL.setTelemetryEnabled(false);
}
// onSymbolPress = (feature) => {
// console.log("coucou");
// }
//
//
// onSourceLayerPress = ({features, coordinates, point}) => {
// console.log(
// 'You pressed a layer here are your features:',
// features,
// coordinates,
// point,
// );
// }
render() {
return (
<View style={{flex: 1}}>
<MapboxGL.MapView
style={{flex: 1}}
ref={this.map}
styleURL={MapboxGL.StyleURL.Outdoors}
surfaceView={true}
onPress={(e) => {
console.log(e)
}}
>
<MapboxGL.Camera
zoomLevel={15}
centerCoordinate={[1.4669608, 43.5698867]}
pitch={30}
/>
{/*<MapboxGL.ShapeSource*/}
{/* id="symbolLocationSource"*/}
{/* shape={{ type: 'FeatureCollection', features: FEATURES }}*/}
{/*>*/}
{/* <MapboxGL.SymbolLayer*/}
{/* id="symbolLocationSymbols"*/}
{/* minZoomLevel={15}*/}
{/* style={styles.icon}*/}
{/* />*/}
{/*</MapboxGL.ShapeSource>*/}
</MapboxGL.MapView>
</View>
);
}
}
export default withTheme(MapScreen);

View file

@ -31,7 +31,6 @@ const WIKETUD_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Wiketud
const EE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/EEC.png";
const TUTORINSA_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/TutorINSA.png";
const MAP_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Map.png";
const BIB_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Bib.png";
const RU_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/RU.png";
const ROOM_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Salles.png";
@ -50,8 +49,6 @@ type State = {
isLoggedIn: boolean,
}
// TODO translate subtitles
class ServicesScreen extends React.Component<Props, State> {
amicaleDataset: cardList;
@ -122,12 +119,6 @@ class ServicesScreen extends React.Component<Props, State> {
},
];
this.insaDataset = [
{
title: i18n.t('screens.map'),
subtitle: i18n.t('servicesScreen.descriptions.map'),
image: MAP_IMAGE,
onPress: () => nav.navigate("map"),
},
{
title: i18n.t('screens.menuSelf'),
subtitle: i18n.t('servicesScreen.descriptions.self'),