[{"data":1,"prerenderedAt":137},["ShallowReactive",2],{"tutorial-14-":3},{"items":4,"meta":132},[5,25,38,51,65,79,92,106,119],{"id":6,"title":7,"slug":8,"excerpt":9,"cover_image":10,"cover_remote_url":11,"cover_credit":12,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":20,"category":21},10,"Mostrare notifiche locali in Flutter con flutter_local_notifications","mostrare-notifiche-locali-in-flutter-con-flutter-local-notifications","Impara a configurare e mostrare notifiche locali in Flutter per Android e iOS, comprese le notifiche programmate, usando il pacchetto flutter_local_notifications.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F990797f2-2b13-4f0f-9b65-6da292431635.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1633099158383-a83da265e76d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTk2MzR8&ixlib=rb-4.1.0&q=80&w=1080",{"name":13,"author_url":14,"photo_url":15},"Andrew Draper","https:\u002F\u002Funsplash.com\u002F@andalexander","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-white-clock-sitting-on-top-of-a-white-table-6uSXVKfAuFM","intermediate",35,"3.x","published","2026-06-14T04:30:42+00:00",{"id":22,"name":23,"slug":24},1,"Guide","guide",{"id":26,"title":27,"slug":28,"excerpt":29,"cover_image":30,"cover_remote_url":31,"cover_credit":32,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":36,"category":37},9,"Gestione dei temi in Flutter con ThemeData e dark mode dinamica","gestione-dei-temi-in-flutter-con-themedata-e-dark-mode-dinamica","Impara a creare temi chiaro e scuro in Flutter, a centralizzarli con ThemeData e a far cambiare il tema dinamicamente all'utente con un toggle.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F3b6da092-97ac-410b-b71e-aead124a724c.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1565130159861-abb854d2bba1?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTk2MzF8&ixlib=rb-4.1.0&q=80&w=1080",{"name":33,"author_url":34,"photo_url":35},"Duncan Kidd","https:\u002F\u002Funsplash.com\u002F@we_the_royal","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-wooden-bench-sitting-on-top-of-a-tiled-floor-LM43DWuTCP0","2026-06-13T04:30:47+00:00",{"id":22,"name":23,"slug":24},{"id":39,"title":40,"slug":41,"excerpt":42,"cover_image":43,"cover_remote_url":44,"cover_credit":45,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":49,"category":50},8,"Creare layout responsive in Flutter con LayoutBuilder e MediaQuery","creare-layout-responsive-in-flutter-con-layoutbuilder-e-mediaquery","Impara a costruire interfacce Flutter che si adattano a smartphone, tablet e desktop usando LayoutBuilder, MediaQuery e widget responsive.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F30afb906-1fee-4cba-b573-7688bd68b558.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1650273545847-b171427e0b37?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU5MDV8&ixlib=rb-4.1.0&q=80&w=1080",{"name":46,"author_url":47,"photo_url":48},"Natalia Vargas","https:\u002F\u002Funsplash.com\u002F@natiiva","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-close-up-of-a-building-with-a-sky-background-q3YOCxdO6Kg","2026-06-12T04:30:49+00:00",{"id":22,"name":23,"slug":24},{"id":52,"title":53,"slug":54,"excerpt":55,"cover_image":56,"cover_remote_url":57,"cover_credit":58,"difficulty":16,"estimated_minutes":62,"flutter_version":18,"status":19,"published_at":63,"category":64},7,"Salvare dati strutturati in Flutter con il database SQLite e sqflite","salvare-dati-strutturati-in-flutter-con-il-database-sqlite-e-sqflite","Impara a integrare un database locale SQLite nelle tue app Flutter usando il pacchetto sqflite: creazione tabelle, operazioni CRUD e pattern repository.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002Fbc61d585-2da0-48ca-a6f7-6e9691c6e2c4.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1651304395894-842cb40adbb8?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU5MDF8&ixlib=rb-4.1.0&q=80&w=1080",{"name":59,"author_url":60,"photo_url":61},"YL Lai","https:\u002F\u002Funsplash.com\u002F@amyno35","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-close-up-of-a-wooden-surface-Gb7-efQCeUU",40,"2026-06-11T04:30:39+00:00",{"id":22,"name":23,"slug":24},{"id":66,"title":67,"slug":68,"excerpt":69,"cover_image":70,"cover_remote_url":71,"cover_credit":72,"difficulty":76,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":77,"category":78},6,"Gestire i form in Flutter con Form e TextFormField: validazione completa","gestire-i-form-in-flutter-con-form-e-textformfield-validazione-completa","Impara a creare un form di registrazione robusto in Flutter usando Form, TextFormField, GlobalKey e validatori personalizzati per gestire input e validazione.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F00decf3a-d7b3-49d9-8567-50e12e5a9a03.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1580152343511-80ef2e53f1c4?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4OTZ8&ixlib=rb-4.1.0&q=80&w=1080",{"name":73,"author_url":74,"photo_url":75},"Hannah Busing","https:\u002F\u002Funsplash.com\u002F@hannahbusing","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fwoman-in-blue-and-white-long-sleeve-shirt-holding-white-book-2IqKGn0pee4","beginner","2026-06-10T04:30:37+00:00",{"id":22,"name":23,"slug":24},{"id":80,"title":81,"slug":82,"excerpt":83,"cover_image":84,"cover_remote_url":85,"cover_credit":86,"difficulty":76,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":90,"category":91},5,"Animazioni implicite in Flutter con AnimatedContainer","animazioni-implicite-in-flutter-con-animatedcontainer","Impara a creare animazioni fluide e accattivanti in Flutter usando i widget di animazione impliciti come AnimatedContainer, AnimatedOpacity e TweenAnimationBuilder, senza gestire manualmente i controller.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F55020f64-fe77-4b50-8939-cea421a613da.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1612744204774-5d0573587ee1?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4OTN8&ixlib=rb-4.1.0&q=80&w=1080",{"name":87,"author_url":88,"photo_url":89},"Julissa Santana","https:\u002F\u002Funsplash.com\u002F@julissasantana","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fblack-textile-on-white-textile-2vN6LnDpn4Y","2026-06-09T06:30:54+00:00",{"id":22,"name":23,"slug":24},{"id":93,"title":94,"slug":95,"excerpt":96,"cover_image":97,"cover_remote_url":98,"cover_credit":99,"difficulty":76,"estimated_minutes":103,"flutter_version":18,"status":19,"published_at":104,"category":105},4,"Persistenza dei dati locali in Flutter con shared_preferences","persistenza-dei-dati-locali-in-flutter-con-shared-preferences","Impara a salvare e leggere dati semplici come impostazioni utente e preferenze direttamente sul dispositivo usando il pacchetto shared_preferences.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F02716908-da7f-486d-94f9-b1b3c53d0e18.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1773291933696-06949474d59b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4OTB8&ixlib=rb-4.1.0&q=80&w=1080",{"name":100,"author_url":101,"photo_url":102},"Declan Sun","https:\u002F\u002Funsplash.com\u002F@declansun","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fmuji-diner-restaurant-interior-with-shelves-of-dishes-1mDIa98jCak",25,"2026-06-09T06:25:53+00:00",{"id":22,"name":23,"slug":24},{"id":107,"title":108,"slug":109,"excerpt":110,"cover_image":111,"cover_remote_url":112,"cover_credit":113,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":117,"category":118},3,"Navigazione tra schermate in Flutter con go_router","navigazione-tra-schermate-in-flutter-con-go-router","Impara a gestire la navigazione dichiarativa in Flutter usando go_router: rotte, parametri, redirect e gestione degli errori in modo semplice e scalabile.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F832f2838-f13e-45e4-9888-92976f98d588.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1661781473867-dcac073be486?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4ODd8&ixlib=rb-4.1.0&q=80&w=1080",{"name":114,"author_url":115,"photo_url":116},"Ridger","https:\u002F\u002Funsplash.com\u002F@ridger","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-road-with-a-sign-on-it-naGbVGwAhWk","2026-06-09T06:23:44+00:00",{"id":22,"name":23,"slug":24},{"id":120,"title":121,"slug":122,"excerpt":123,"cover_image":124,"cover_remote_url":125,"cover_credit":126,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":130,"category":131},2,"Gestire lo stato in Flutter con Provider: guida pratica","gestire-lo-stato-in-flutter-con-provider-guida-pratica","Impara a usare il pacchetto Provider per gestire lo stato della tua app Flutter in modo pulito e scalabile, separando la logica dalla UI.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F1e8cc893-9ea0-488f-ab62-a1670d287134.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1748557438040-1fd82928f2ad?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4ODV8&ixlib=rb-4.1.0&q=80&w=1080",{"name":127,"author_url":128,"photo_url":129},"Riccardo Bernucci","https:\u002F\u002Funsplash.com\u002F@new_ra","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fwater-flows-from-a-small-hole-in-the-rock-J-rU8qNnLCg","2026-06-08T10:14:54+00:00",{"id":22,"name":23,"slug":24},["Reactive",133],{"current_page":134,"last_page":135,"per_page":26,"total":136},14,15,127,1792316903829]