{"id":822,"date":"2019-06-24T15:15:00","date_gmt":"2019-06-24T13:15:00","guid":{"rendered":"https:\/\/affluences.com\/blog\/?p=822"},"modified":"2022-06-24T17:43:48","modified_gmt":"2022-06-24T15:43:48","slug":"transition-application-native-flutter","status":"publish","type":"post","link":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/","title":{"rendered":"Comment assurer la transition entre une application native et une application hybride Flutter ?"},"content":{"rendered":"\n<p id=\"viewer-foo\">Affluences a d\u00e9velopp\u00e9 sa <strong>nouvelle application Flutter<\/strong> : process de migration des donn\u00e9es locales, phase de tests, diff\u00e9rences entre les builds release et debug, etc.<\/p>\n\n\n\n<p id=\"viewer-7incs\">On revient sur ce projet intense !<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"504\" src=\"https:\/\/affluences.com\/blog\/wp-content\/uploads\/2022\/06\/42db33_f93538988da94a9982bb25cb9e14bc39_mv2.gif\" alt=\"\" class=\"wp-image-823\"\/><figcaption>Aper\u00e7u de la nouvelle application mobile Affluences<\/figcaption><\/figure>\n\n\n\n<p id=\"viewer-dghb5\">Nous vous parlions il y a quelques temps de la toute <a href=\"https:\/\/affluences.com\/blog\/nouvelle-application-flutter\/\"><u>nouvelle version de l\u2019application mobile faite avec Flutter<\/u><\/a>, qui \u00e9tait en d\u00e9veloppement et bient\u00f4t disponible au public.<\/p>\n\n\n\n<p id=\"viewer-ebbvn\"><strong>C\u2019est chose faite !<\/strong>Nous avons pour l\u2019instant lanc\u00e9 une publication progressive sur le Play Store et l\u2019App Store (bient\u00f4t compl\u00e8te). Le but de cet article est d\u2019expliquer comment nous avons fait la <strong>transition de notre version native (Android et iOS) \u00e0 la version cross-platform Flutter<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"viewer-2bdae\">Migration des donn\u00e9es du natif vers Flutter<\/h2>\n\n\n\n<p id=\"viewer-cfaek\">Nous voulions par exemple garder certaines pr\u00e9f\u00e9rences de l\u2019utilisateur afin d\u2019assurer une transition \u201cfluide\u201d. Nous utilisons le <strong>plugin \u201cSharedPreferences\u201d sur Flutter<\/strong> pour stocker ces pr\u00e9f\u00e9rences. Malheureusement, ce plugin n\u2019utilise pas le m\u00eame fichier que notre version native. Nous avons donc d\u00fb \u00e9crire du code natif (Kotlin et Swift), sp\u00e9cifique \u00e0 notre besoin pour pouvoir r\u00e9cup\u00e9rer les anciennes pr\u00e9f\u00e9rences et les stocker dans les nouvelles.<\/p>\n\n\n\n<p id=\"viewer-f8cuh\">Le fait de devoir migrer ces donn\u00e9es nous a notamment permis de d\u00e9couvrir un bug d\u00fb \u00e0 ProGuard sur les versions natives qui, heureusement, n\u2019a pas \u00e9t\u00e9 bloquant sur la migration. En effet, le mod\u00e8le concernant certaines pr\u00e9f\u00e9rences \u00e9tait obfusqu\u00e9es. Les cl\u00e9s du JSON sauvegard\u00e9 n\u2019\u00e9taient donc plus identiques (ex: \u201capp_startup\u201d devenait \u201ca\u201d). Nous avons contourn\u00e9 ce probl\u00e8me en utilisant les valeurs obfusqu\u00e9es pour migrer les donn\u00e9es.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"viewer-dbqvs\">Correction des bugs gr\u00e2ce \u00e0 Flutter<\/h2>\n\n\n\n<p id=\"viewer-chtv1\">Au tout d\u00e9but du d\u00e9veloppement, <strong>Flutter \u00e9tait \u00e0 la version 1.2.1<\/strong>, au fur et \u00e0 mesure nous mettions Flutter \u00e0 jour, pour aujourd\u2019hui \u00eatre \u00e0 la <strong>version 1.6.3<\/strong>. Cela a notamment permis de corriger certains bugs, comme par exemple les minutes des TimePicker qui n\u2019\u00e9tait pas s\u00e9lectionn\u00e9es automatiquement. Il n\u2019y a rien de pire que de publier une mise \u00e0 jour qui rend inutilisable une application. C\u2019est pourquoi, diff\u00e9rentes phases de tests ont eu lieu avant la publication afin de nous assurer que la <strong>migration des donn\u00e9es<\/strong> fonctionne correctement et qu\u2019aucun bug n\u2019est pr\u00e9sent. Il y a eu dans un premier temps des BETA toutes les deux semaines, restreintes \u00e0 quelques personnes, puis des <strong>Release Candidate<\/strong> toutes les semaines, avec un nombre d\u2019utilisateurs un peu plus important. Cela nous a permis d\u2019identifier des bugs restants et certains points \u00e0 am\u00e9liorer, que ce soit niveau UI ou UX. En compl\u00e9ment, nous avons mis en place diff\u00e9rents tests unitaires et des tests d\u2019int\u00e9gration afin d\u2019assurer la <strong>p\u00e9rennit\u00e9 de l\u2019application<\/strong> et \u00e9viter d\u2019\u00e9ventuelles r\u00e9gressions dans les futures mise \u00e0 jour.<\/p>\n\n\n\n<p id=\"viewer-aj9t1\">Malgr\u00e9 le changement majeur de technologie et l\u2019ajout de nombreuses nouvelles fonctionnalit\u00e9s, tous ces m\u00e9canismes nous ont permis de lancer cette <strong>nouvelle version<\/strong> tant attendue avec s\u00e9r\u00e9nit\u00e9. Cette base solide va nous permettre de consolider notre cycle de d\u00e9veloppement et de proposer de <strong>nouvelles fonctionnalit\u00e9s<\/strong> toujours plus rapidement !<\/p>\n\n\n\n<div class=\"wp-block-buttons aligncenter is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.welcometothejungle.com\/fr\/companies\/affluences\/jobs\" target=\"_blank\" rel=\"noreferrer noopener\">Postulez \u00e0 nos offres d\u00e9di\u00e9es \u00e0 l&rsquo;\u00e9quipe technique<\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Affluences a d\u00e9velopp\u00e9 sa nouvelle application Flutter : process de migration des donn\u00e9es locales, phase de tests, diff\u00e9rences entre les builds release et debug, etc. On revient sur ce projet intense ! Nous vous parlions il y a quelques temps de la toute nouvelle version de l\u2019application mobile faite avec Flutter, qui \u00e9tait en d\u00e9veloppement [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":824,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[353],"tags":[],"class_list":["post-822","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-les-dessous-de-la-tech"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Comment assurer la transition d&#039;une application native vers Flutter ?<\/title>\n<meta name=\"description\" content=\"Affluences a d\u00e9velopp\u00e9 sa nouvelle application Flutter \ud83d\udcf2 Process de migration des donn\u00e9es, phase de tests, diff\u00e9rences entre les builds release et debug !\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment assurer la transition d&#039;une application native vers Flutter ?\" \/>\n<meta property=\"og:description\" content=\"Affluences a d\u00e9velopp\u00e9 sa nouvelle application Flutter \ud83d\udcf2 Process de migration des donn\u00e9es, phase de tests, diff\u00e9rences entre les builds release et debug !\" \/>\n<meta property=\"og:url\" content=\"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/\" \/>\n<meta property=\"og:site_name\" content=\"Le blog Affluences\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Affluencesapp\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-24T13:15:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-24T15:43:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/affluences.com\/blog\/wp-content\/uploads\/2022\/06\/transition-application-native-flutter.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Communication\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Affluences_App\" \/>\n<meta name=\"twitter:site\" content=\"@Affluences_App\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Communication\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/\"},\"author\":{\"name\":\"Communication\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#\\\/schema\\\/person\\\/4791a989685bb628373b2af9f99550f3\"},\"headline\":\"Comment assurer la transition entre une application native et une application hybride Flutter ?\",\"datePublished\":\"2019-06-24T13:15:00+00:00\",\"dateModified\":\"2022-06-24T15:43:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/\"},\"wordCount\":560,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/affluences.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/transition-application-native-flutter.jpeg\",\"articleSection\":[\"Dessous de la tech\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/\",\"url\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/\",\"name\":\"Comment assurer la transition d'une application native vers Flutter ?\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/affluences.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/transition-application-native-flutter.jpeg\",\"datePublished\":\"2019-06-24T13:15:00+00:00\",\"dateModified\":\"2022-06-24T15:43:48+00:00\",\"description\":\"Affluences a d\u00e9velopp\u00e9 sa nouvelle application Flutter \ud83d\udcf2 Process de migration des donn\u00e9es, phase de tests, diff\u00e9rences entre les builds release et debug !\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/#primaryimage\",\"url\":\"https:\\\/\\\/affluences.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/transition-application-native-flutter.jpeg\",\"contentUrl\":\"https:\\\/\\\/affluences.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/transition-application-native-flutter.jpeg\",\"width\":1024,\"height\":683},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/transition-application-native-flutter\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/affluences.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comment assurer la transition entre une application native et une application hybride Flutter ?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/affluences.com\\\/blog\\\/\",\"name\":\"Le blog d Affluences\",\"description\":\"Tous nos conseils et astuces\",\"publisher\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/affluences.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#organization\",\"name\":\"Affluences\",\"url\":\"https:\\\/\\\/affluences.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blog.affluences.com\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/logo_affluences-e1531737183907.png\",\"contentUrl\":\"https:\\\/\\\/blog.affluences.com\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/logo_affluences-e1531737183907.png\",\"width\":512,\"height\":512,\"caption\":\"Affluences\"},\"image\":{\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Affluencesapp\",\"https:\\\/\\\/x.com\\\/Affluences_App\",\"https:\\\/\\\/www.instagram.com\\\/affluences_app\\\/?hl=fr\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/affluences-app\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCwPTgo4QaCais3IytxOjh0w\",\"https:\\\/\\\/fr.wikipedia.org\\\/wiki\\\/Affluences\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/affluences.com\\\/blog\\\/#\\\/schema\\\/person\\\/4791a989685bb628373b2af9f99550f3\",\"name\":\"Communication\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f0ca5379bda977b18043f3cdb63a882a87096c96317127eb6f83f033b2a5d2b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f0ca5379bda977b18043f3cdb63a882a87096c96317127eb6f83f033b2a5d2b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f0ca5379bda977b18043f3cdb63a882a87096c96317127eb6f83f033b2a5d2b?s=96&d=mm&r=g\",\"caption\":\"Communication\"},\"url\":\"https:\\\/\\\/affluences.com\\\/blog\\\/author\\\/melisande-vialard\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comment assurer la transition d'une application native vers Flutter ?","description":"Affluences a d\u00e9velopp\u00e9 sa nouvelle application Flutter \ud83d\udcf2 Process de migration des donn\u00e9es, phase de tests, diff\u00e9rences entre les builds release et debug !","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment assurer la transition d'une application native vers Flutter ?","og_description":"Affluences a d\u00e9velopp\u00e9 sa nouvelle application Flutter \ud83d\udcf2 Process de migration des donn\u00e9es, phase de tests, diff\u00e9rences entre les builds release et debug !","og_url":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/","og_site_name":"Le blog Affluences","article_publisher":"https:\/\/www.facebook.com\/Affluencesapp","article_published_time":"2019-06-24T13:15:00+00:00","article_modified_time":"2022-06-24T15:43:48+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/affluences.com\/blog\/wp-content\/uploads\/2022\/06\/transition-application-native-flutter.jpeg","type":"image\/jpeg"}],"author":"Communication","twitter_card":"summary_large_image","twitter_creator":"@Affluences_App","twitter_site":"@Affluences_App","twitter_misc":{"\u00c9crit par":"Communication","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/#article","isPartOf":{"@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/"},"author":{"name":"Communication","@id":"https:\/\/affluences.com\/blog\/#\/schema\/person\/4791a989685bb628373b2af9f99550f3"},"headline":"Comment assurer la transition entre une application native et une application hybride Flutter ?","datePublished":"2019-06-24T13:15:00+00:00","dateModified":"2022-06-24T15:43:48+00:00","mainEntityOfPage":{"@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/"},"wordCount":560,"commentCount":0,"publisher":{"@id":"https:\/\/affluences.com\/blog\/#organization"},"image":{"@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/#primaryimage"},"thumbnailUrl":"https:\/\/affluences.com\/blog\/wp-content\/uploads\/2022\/06\/transition-application-native-flutter.jpeg","articleSection":["Dessous de la tech"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/affluences.com\/blog\/transition-application-native-flutter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/","url":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/","name":"Comment assurer la transition d'une application native vers Flutter ?","isPartOf":{"@id":"https:\/\/affluences.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/#primaryimage"},"image":{"@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/#primaryimage"},"thumbnailUrl":"https:\/\/affluences.com\/blog\/wp-content\/uploads\/2022\/06\/transition-application-native-flutter.jpeg","datePublished":"2019-06-24T13:15:00+00:00","dateModified":"2022-06-24T15:43:48+00:00","description":"Affluences a d\u00e9velopp\u00e9 sa nouvelle application Flutter \ud83d\udcf2 Process de migration des donn\u00e9es, phase de tests, diff\u00e9rences entre les builds release et debug !","breadcrumb":{"@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/affluences.com\/blog\/transition-application-native-flutter\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/#primaryimage","url":"https:\/\/affluences.com\/blog\/wp-content\/uploads\/2022\/06\/transition-application-native-flutter.jpeg","contentUrl":"https:\/\/affluences.com\/blog\/wp-content\/uploads\/2022\/06\/transition-application-native-flutter.jpeg","width":1024,"height":683},{"@type":"BreadcrumbList","@id":"https:\/\/affluences.com\/blog\/transition-application-native-flutter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/affluences.com\/"},{"@type":"ListItem","position":2,"name":"Comment assurer la transition entre une application native et une application hybride Flutter ?"}]},{"@type":"WebSite","@id":"https:\/\/affluences.com\/blog\/#website","url":"https:\/\/affluences.com\/blog\/","name":"Le blog d Affluences","description":"Tous nos conseils et astuces","publisher":{"@id":"https:\/\/affluences.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/affluences.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/affluences.com\/blog\/#organization","name":"Affluences","url":"https:\/\/affluences.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/affluences.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/blog.affluences.com\/wp-content\/uploads\/2017\/08\/logo_affluences-e1531737183907.png","contentUrl":"https:\/\/blog.affluences.com\/wp-content\/uploads\/2017\/08\/logo_affluences-e1531737183907.png","width":512,"height":512,"caption":"Affluences"},"image":{"@id":"https:\/\/affluences.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Affluencesapp","https:\/\/x.com\/Affluences_App","https:\/\/www.instagram.com\/affluences_app\/?hl=fr","https:\/\/www.linkedin.com\/company\/affluences-app\/","https:\/\/www.youtube.com\/channel\/UCwPTgo4QaCais3IytxOjh0w","https:\/\/fr.wikipedia.org\/wiki\/Affluences"]},{"@type":"Person","@id":"https:\/\/affluences.com\/blog\/#\/schema\/person\/4791a989685bb628373b2af9f99550f3","name":"Communication","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/4f0ca5379bda977b18043f3cdb63a882a87096c96317127eb6f83f033b2a5d2b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4f0ca5379bda977b18043f3cdb63a882a87096c96317127eb6f83f033b2a5d2b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4f0ca5379bda977b18043f3cdb63a882a87096c96317127eb6f83f033b2a5d2b?s=96&d=mm&r=g","caption":"Communication"},"url":"https:\/\/affluences.com\/blog\/author\/melisande-vialard\/"}]}},"_links":{"self":[{"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/posts\/822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/comments?post=822"}],"version-history":[{"count":2,"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/posts\/822\/revisions"}],"predecessor-version":[{"id":839,"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/posts\/822\/revisions\/839"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/media\/824"}],"wp:attachment":[{"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/media?parent=822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/categories?post=822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affluences.com\/blog\/wp-json\/wp\/v2\/tags?post=822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}