Googeld rive
Author: p | 2025-04-25
Export your Rive animation, into a .rive file. Rive export rive file Tech Breeze countries animations. 3. The .rive file. After exporting the file please pay attention to the size Export your Rive animation, into a .rive file. Rive export rive file Tech Breeze countries animations. 3. The .rive file. After exporting the file please pay attention to the size of
Rive - Made with Rive MadeWithRive
Rive UnityA Unity runtime library for Rive. This is currently a technical preview for Mac and Windows installs of Unity. We're hoping to gather feedback about the API and feature-set as we expand platform support.Rendering supportCurrently supported platforms and backends include:WebGLMetal on MacMetal on iOSD3D11 on WindowsOpenGL on WindowsOpenGL on AndroidPlanned support for:D3D12VulkanFeature supportThe rive-unity runtime uses the latest Rive C++ runtime.FeatureSupportedAnimation Playback✅Fit and Alignment✅Listeners✅Setting State Machine Inputs✅Listening to Events✅Updating text at runtime✅Out-of-band assets✅Procedural rendering✅PNG images✅WEBP and JPEG images✅Table of contents⭐️ Rive Overview🚀 Getting Started👨💻 Contributing❓ IssuesRive overviewRive is a real-time interactive design and animation tool that helps teamscreate and run interactive animations anywhere. Designers and developers use our collaborativeeditor to create motion graphics that respond to different states and user inputs. Our lightweightopen-source runtime libraries allow them to load their animations into apps, games, and websites.🏡 Homepage📘 General help docs · Rive Unity docs🛠 Learning RiveGetting startedSee the official examples repository to easily run a project locally: the Rive Unity docs for more information.You will need a Unity editor that supports OpenGL or D3D11 for Windows, or a Mac with ARM64 (M1, M2, etc) architecture and OS 11.0 or later.Select either D3D11/OpenGL for Windows, or Metal for Mac/iOS as the Graphics API under Project Settings -> Player in Unity.You can install the Rive package for Unity by opening the Package Manager (Window -> Package Manager) and adding the latest release as a git dependency, for example (replace 0.0.0 with the latest release):[email protected]:rive-app/rive-unity.git?path=package#v0.0.0Or through HTTP (replace 0.0.0 with the latest release): can also add it manually to your projects Packages/manifest.json file (replace 0.0.0 with the latest release):{ "dependencies": { "app.rive.rive-unity": "[email protected]:rive-app/rive-unity.git?path=package#v0.0.0" }}Awesome RiveFor even more examples and resources on using Rive at runtime or in other tools, checkout the awesome-rive repo.ContributingWe love contributions! Check out our contributing docs to get
Caching a Rive File - Rive
Rive React NativeA React Native runtime library for Rive.This library is a wrapper around the iOS/Android runtime, providing a component and ref pattern for React Native applications.Table of contents⭐ Rive Overview🚀 Getting Started & API docs🔍 Supported Devices📚 Examples🏃 Migration Guides👨💻 Contributing❓ IssuesRive OverviewRive is a real-time interactive design and animation tool that helps teams create and run interactive animations anywhere. Designers and developers use our collaborative editor to create motion graphics that respond to different states and user inputs. Our lightweight open-source runtime libraries allow them to load their animations into apps, games, and websites.🏡 Homepage📘 General help docs🛠 Resources for building in RiveGetting StartedFollow along with the link below for a quick start in getting Rive React Native integrated into your multi-platform applications.Getting Started with Rive in React NativeAPI documentationSupported DevicesBecause this runtime library has a dependency on the Rive Android and Rive iOS runtimes, the supported devices align with each of these dependencies minimum supported devices, as well as the minimum device requirements of the React Native framework.iOS: 14.0+Android:Minimum SDK version: 21Target SDK version: 33ExamplesCheck out the example/ folder to run an example application using the Rive React Native runtime. It runs on the local build of this library, and showcases a number of ways to use the Rive component and useRef hook pattern:Setting a Rive file via a URL, or asset in the Android/iOS projectsDisplaying single or multiple animations / artboards on one componentSetting up and maniuplating a state machine via inputs...and more!Steps:Run yarn bootstrapcd exampleyarn expo run:android or yarn expo run:iosiOS:You may need to run pod install (first time) or pod update RiveRuntime (updates to the underlying Rive iOS runtime) in the example/iOS folder to get the runtime installed or updatedMigration GuidesUsing an older version of the runtime and need to learn how to upgrade to the latest version? Check out the migration guides below in our help center that help guide you through version bumps; breaking changes and all!Migration guidesContributingWe love contributions! Check out our contributing docs to get more details into how to run this project, the examples, and more all locally.IssuesHave an issue with using the runtime, or want to suggest a feature/API to help make your development life better? Log an issue in our issues tab! You can also browse older issues and discussion threads there to see solutions that may have worked for common problems.rive-app/rive-flutter: Flutter runtime for Rive - GitHub
Slik ripper du en hjemmelaget DVD med VLC Media Player Denne artikkelen snakker om et viktig trekk i VLC, hvordan du ripper en DVD. Som en populær mediespiller kan VLC dekode nesten alle video- og lydfiler. Imidlertid er det ikke et enkelt mediespill, men utstyrer et bredt spekter av nyttige funksjoner. Problemet er at brukerne klaget over at de ikke finner bonusfunksjonene, for ikke å snakke om hvordan de skal brukes. Etter denne artikkelen kan du mestre en av de skjulte funksjonene i VLC og bruke den til å konvertere dine fysiske plater til digitale videofiler. Del 1: Kan VLC rippe DVD? Del 2: Hvordan rippe DVD med VLC Del 3: Beste alternativ til VLC Del 1: Kan VLC rippe DVD? Du lurer kanskje på om VLC kan rippe en DVD. Svaret er forskjellig avhengig av din situasjon. For det første er VLC i stand til å rippe ubeskyttede DVD -er til digitale video- eller lydfiler. Siden VLC ikke inkluderer dekrypteringsteknologi, kan den ikke dekode beskyttede DVDer uavhengig. Den gode nyheten er at du kan bruke ekstra bibliotek til å hjelpe VLC. Uansett kan du rippe DVD med VLC på Windows, Mac OS X og Linux. Del 2: Hvordan rippe DVD med VLC Som nevnt tidligere har VLC kapasitet til å rippe DVDer. Tatt i betraktning at arbeidsflyten er kompleks, deler vi en konkret guide nedenfor. Trinn 1: Installer VLC sammen med Libdvdcss Åpne nettleseren din og få tilgang til VLC-nettstedet ( Klikk på pilikonet ved siden av Last ned VLC og last ned riktig versjon basert på systemet ditt. Installer den deretter på harddisken. Hvis du bare vil rive hjemmelagde DVDer, kan du hoppe direkte til neste trinn. Ellers last ned libdvdcss for 32-biters Windows fra og 64-biters Windows fra /pub/libdvdcss/1.2.11/win64/libdvdcss-2.dll. Kopier og lim deretter inn .dll-filen til VLC-installasjonskatalogen. For Mac-datamaskiner, last ned denne libdvdcss ( til harddisken din, dobbeltklikk på filen for å installere den på maskinen din . Hvis datamaskinen din kjører El Capitan eller sistnevnte, åpner du terminalvinduet ved å trykke Kommando + Mellomrom tastene, og utfør kommandoen bryg installer libdvdcss for å laste ned og installere biblioteket. Trinn 2: Last inn DVD-videoer i VLC Når alt er gjort, setter du DVDen inn i ROM-stasjonen og åpner VLC. Klikk og brett ut Media menyen fra den øverste menylinjen og velg Konverter / lagre for å åpne dialogboksen Åpne medier. Gå deretter til Plate kategorien. Alternativt kan du klikke Media til Åpne platen å lokalisere Plate kategorien i dialogboksen Åpne media direkte. Plukke ut DVD, og sørg for at disknavnet ditt vises i Platenhet boksen under Valg av plate område. Hvis ikke, må du stille det ved å trykke på Bla gjennom knappen manuelt. Som standard vil VLC rive DVDen din fra den første tittelen. Du kan imidlertid justere verdiene på Tittel og Kapittel i Startposisjon seksjon for å rive spesifikke titler. I tillegg lar VLC deg velge lydspor og teksting under Lyd og undertekster seksjon. Klikk på Konverter / lagre knappen for å gå videre. Tips:. Export your Rive animation, into a .rive file. Rive export rive file Tech Breeze countries animations. 3. The .rive file. After exporting the file please pay attention to the sizerive-app/rive-ios: iOS runtime for Rive - GitHub
作者:京东物流 沈明亮在App开发过程中,如果想实现动画效果,可以粗略分为两种方式。一种是直接用代码编写,像平移、旋转等简单的动画效果,都可以这么干,如果稍微复杂点,就会对开发工程师的数学功底、图形图像学功底有很高的要求。另一种方式,可以让UI同学配合,一次性出多张图片或者直接出一张GIF图,通过短时间内快速轮播图片的方式来实现复杂动画效果,这种方式真正实现起来还是有挺多问题的,比如缺少对动画过程的控制、图片尺寸的适配等等。那么,有没有更好的解决方案呢?有的,Rive。简介Rive是专门为简化动画的实现而生的,设计师可以在其官网通过拖拉拽实现各种复杂动画效果,设计完毕后导出动画文件,工程师可以在App里直接导入此文件,配合相应的SDK即可实现。其官网有详细的开发文档,同时也有自己的社区资源,我们可以直接从社区里下载别人设计好的动画效果进行学习。另外特别重要的是,Rive支持跨平台,同时支持Android、iOS、Flutter、JS、React、C++等等,本文以Flutter的实现为例介绍。一个完整的例子登陆Rive官网进行设计,并导出相应的动画文件,Rive的动画文件是以.riv结尾。本文示例是从官网的社区里找的一个个人比较喜欢的动效。依次运行下面的命令,引入rive sdk。将导出的.riv文件放到资源目录下,并修改pubspec.yaml文件。加载动画文件并展示的核心代码:核心代码就这么多,对于代码中的标注详细说明下:标注1的地方,主要作用是获取状态机控制器,fromArtboard 方法有两个参数,第二个参数是状态机的名称,这个名称需要和UI同学协商好,一旦确定好名称就不允许设计同学再改了,对应于设计面板界面的左下角,如下图:标注2的地方,本例的动画是根据“数值”的变化而变化的,findInput的入参同样需要和UI同学协商好,一旦设计时把这个名字改了,代码里也别忘了进行相应的修改,也在设计面板的左下角,在状态机名称的右边,如下图:完整的代码如下,大家可以按步骤自己操作体验下。class RiveDemo extends StatefulWidget { const RiveDemo({Key? key}) : super(key: key); @override State createState() => _RiveDemoState();}class _RiveDemoState extends State { /// 状态机控制器 StateMachineController? controller; /// 控制输入数值 SMIInput? valueController; ///画板,配合Rive widget 使用,展示动画效果。 Artboard? riveArtboard; Timer? timer; @override void initState() { super.initState(); //加载 rootBundle.load('asset/rives/rive_demo.riv').then((value) async { final file = RiveFile.import(value); final artboard = file.mainArtboard; //1 controller = StateMachineController.fromArtboard(artboard, 'TreeMachine'); if (controller != null) { setState(() { artboard.addController(controller!); //2 valueController = controller!.findInput('input'); valueController!.value = -4; }); } riveArtboard = artboard; }); } @override void dispose() { controller?.dispose(); stopAnimation(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Rive Demo'), ), backgroundColor: Colors.white, body: Center( child: riveArtboard == null ? const CircularProgressIndicator() : Rive(artboard: riveArtboard!), ), floatingActionButton: SizedBox( height: 50, child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ TextButton( onPressed: () { startAnimation(); }, child: const Text('start'), ), TextButton( onPressed: () { stopAnimation(); }, child: const Text('stop'), ), TextButton( onPressed: () { resetAnimation(); }, child: const Text('reset'), ), ], ), ), ); } /// 开始动画 void startAnimation() { if (timer != null) { return; } timer = Timer.periodic(const Duration(milliseconds: 60), (timer) { valueController?.value += 0.5; }); } /// 停止动画 void stopAnimation() { timer?.cancel(); timer = null; } /// 重置动画 void resetAnimation() { stopAnimation(); valueController?.value = 0; }}总结像本例中的动画效果,如果用代码来编写,时间成本会很大很大,如果靠图片的堆积,实现起来也很麻烦,而且由于图片的数量增多,安装包的体积也会增加很多。但是用rive,实现起来却很方便,可能唯一的成本就是设计师同学的学习成本。Rive不仅支持本地动画文件的加载,还可以将动画文件放到服务器上,利用RiveAnimation.network方法进行加载。更多的使用示例可以参考:rive-app/rive-react: React runtime for Rive - GitHub
Yo tounen soti byen lwen. Kite pitit fi m' yo tounen soti toupatou sou latè. 7 Se pèp mwen yo ye. Se mwen menm ki kreye yo pou yo ka sèvi yon lwanj pou mwen. Se mwen menm menm ki te fè yo. Se nan men mwen yo soti. 8 ¶ Seyè a di ankò: -Fè pèp la konparèt devan m'. Se yon bann moun ki gen je men ki pa wè. Yo gen zòrèy men yo pa tande. 9 Rele tout nasyon yo, fè yo tout reyini ansanm. Fè yo sanble nan tribinal la. Kilès nan bondye moun sa yo ki te di davans sa ki gen pou rive a? Kilès ki te fè nou konnen bagay k'ap rive koulye a? Fè bondye sa yo vini ak temwen ki pou kanpe pale pou yo. Lè y'a tande yo, y'a ba yo rezon! 10 Men pawòl Seyè a di: -Se nou menm menm ki pou sèvi m' temwen. Se nou menm mwen te chwazi pou sèvi m', pou nou konnen m', pou nou kapab mete konfyans nou nan mwen, pou nou ka konprann se mwen menm sèl ki Bondye tout bon an. Anvan mwen, pa t' gen lòt bondye. Apre mwen, p'ap gen lòt bondye. 11 Se mwen menm sèl ki Granmèt la, Seyè a. Pa gen lòt ki ka delivre nou pase mwen menm! 12 Se mwen menm ki te di nou davans sa ki gen pou rive. Se mwen menm ki delivre nou. Pa gen ankenn lòt bondyerive-app/rive-unity - GitHub
Te pran Ewodyad, madanm Filip, frè li, pou madanm li.18 Se konsa, Jan te di li: -Ou pa gen dwa pran madanm frè ou pou madanm ou.19 Ewodyad te kenbe Jan nan kè. Li te vle fè yo touye li.20 Men, li pa t' kapab, paske Ewòd pou tèt pa l' te gen yon krentif pou Jan. Li te konnen Jan se yon nonm dwat ki t'ap viv pou Bondye. Se sak fè li te pwoteje li. Li te renmen tande l' pale tou, menm si apre sa kè l' te boulvèse.21 Jou Ewodyad t'ap tann lan vin rive. Se te jou fèt Ewòd. Jou sa a, Ewòd te fè yon fèt pou tout zotobre nan gouvènman l' lan, ansanm ak gwo chèf nan lame a ak lòt grannèg nan peyi Galile a.22 Pitit fi Ewodyad la antre nan sal resepsyon an: li danse, li danse. Sa te fè Ewòd ak envite l' yo plezi anpil. Wa a di madmwazèl la konsa: -Mande m' nenpòt sa ou vle, m'ap ba ou li.23 Ewòd sèmante ba li, li di l' konsa: -Tou sa ou mande, m'ap ba ou li, te mèt mwatye nan peyi m'ap gouvènen an.24 Madmwazèl la soti, li al di manman li: -Kisa m' ta mande? Manman an reponn li: -Mande tèt Jan Batis.25 Jenn fi a prese tounen kote wa a, li fè l' demann sa a: -Mwen ta vle pou ou ban mwen tèt Jan Batis koulye a, nan yon plato.26 Kè wa a kase. Men, li pa t' kapab di li non ankò, akòz gwo sèman li te fin fè devan tout envite yo.27 Menm lè a, li voye yon gad avèk lòd pou li al chache tèt Jan Batis pote vini.28 Gad la koupe tèt Jan Batis nan prizon an; li pote l' vini nan yon plato. Li bay madmwazèl la tèt la; madmwazèl la menm pote l' bay manman li.29 Lè patizan Jan yo tande sa, yo vin pran kò a, yo mete l' nan yon kavo.30 Lè apòt yo tounen vin jwenn Jezi, yo rakonte l' tou sa yo te fè ak tou sa yo te di.31 Lè sa a, te sitèlman gen moun ki t'ap ale vini, Jezi ak disip li yo pa t' menm gen tan pou yo manje. Se poutèt sa Jezi di disip li yo: -Ann al avè m' yon kote ki pa gen moun pou nou ka pran yon ti repo.32 Epi, yo pati pou kont yo nan yon kannòt pou y' ale yon kote ki pa gen moun.33 Men, anpil moun te wè lè y' ale, yo te rekonèt yo. Se konsa, yo kouri soti nan tout bouk yo, yo gen tan rive kote Jezi taprale avèk disip li yo anvan li.34 Lè Jezi rive pou l' debake sot nan kannòt la, li wè tout bann moun yo. Kè l' fè l' mal pou yo, paske yo te tankou yon bann mouton san gadò. Lamenm, li tanmen esplike yo anpil bagay.35 Lè li te kòmanse fèrive-app/rive-wasm: Wasm/JS runtime for Rive - GitHub
Animation's value, making it easy to create dynamic and interactive animations.class AnimatedBox extends StatefulWidget { @override _AnimatedBoxState createState() => _AnimatedBoxState();}class _AnimatedBoxState extends State with SingleTickerProviderStateMixin { AnimationController _controller; Animation _animation; @override void initState() { super.initState(); _controller = AnimationController(vsync: this, duration: Duration(seconds: 1)); _animation = Tween(begin: 0, end: 1).animate(_controller); _controller.forward(); } @override Widget build(BuildContext context) { return AnimatedBuilder( animation: _animation, builder: (context, child) { return Container( width: 100 _animation.value, height: 100 _animation.value, color: Colors.blue, ); }, ); } @override void dispose() { _controller.dispose(); super.dispose(); }}I'm torn between using ImplicitlyAnimatedWidget and AnimatedBuilder, but ultimately, AnimatedBuilder offers more flexibility for complex animations.Flare and RiveFor even more advanced animations, tools like Flare and Rive are invaluable. These tools allow you to create complex vector animations that can be easily integrated into your Flutter app.Flare and Rive provide a visual editor for creating animations, which can then be exported as Flutter widgets. This approach is particularly useful for creating intricate animations that would be difficult to achieve with code alone.Maybe I should clarify that while Flare and Rive are powerful, they do add some complexity to your project. Use them judiciously.Advanced Networking TechniquesNetworking is a fundamental aspect of most mobile applications. In 2024, advanced networking techniques are essential for building robust and efficient apps.GraphQL: A Flexible Alternative to RESTGraphQL has emerged as a powerful alternative to REST for API development. GraphQL allows clients to request exactly the data they need, reducing over-fetching and under-fetching.import 'package:graphql_flutter/graphql_flutter.dart';final HttpLink httpLink = HttpLink(uri: ' ValueNotifier client = ValueNotifier( GraphQLClient(cache: InMemoryCache(), link: httpLink),);Is this the best approach? Let's consider the alternatives.WebSockets: Real-Time CommunicationFor applications that require real-time communication, WebSockets are indispensable. WebSockets provide a full-duplex communication channel over a single TCP connection, making them ideal for real-time updates.import 'package:web_socket_channel/web_socket_channel.dart';final channel = WebSocketChannel.connect(Uri.parse('wss://your-websocket-endpoint.com'));channel.stream.listen((message) { print('Received message: $message');});channel.sink.add('Hello, WebSocket!');I'm torn between using. Export your Rive animation, into a .rive file. Rive export rive file Tech Breeze countries animations. 3. The .rive file. After exporting the file please pay attention to the size Export your Rive animation, into a .rive file. Rive export rive file Tech Breeze countries animations. 3. The .rive file. After exporting the file please pay attention to the size of
GitHub - rive-app/awesome-rive: An awesome list that curates Rive
Bib la en Kreyol > Liv Mak > Chapit 6Nòt: Klike sou nenpòt vèsè, w ap ka li vèsè sa a an 3 lang... Kreyòl, Anglais, ak Fransè. Chwazi yon lot langaj nan menu a goch la si w ta vle li Mak Chapit 6 nan lot lang la...1 Jezi kite kote l' te ye a, li ale nan lavil kote l' te grandi a. Disip li yo te ale avè l' tou.2 Lè jou repo a rive, li kòmanse moutre moun ki te nan sinagòg la anpil bagay. Foul moun ki t'ap koute l' yo te sezi anpil, yo t'ap di konsa: -Kote l' jwenn tout bagay sa yo? Kilès ki ba l' konesans sa yo? Kouman li fè fè tout mirak sa yo?3 Se pa ti bòs chapant pitit Mari a? Se pa frè Jak, Jòz, Jid ak Simon an? Apa tout sè l' yo la avèk nou? Se sa ki fè li te tounen pou yo yon okazyon tonbe nan peche.4 Lè sa a, Jezi di yo: -Yon pwofèt jwenn respè toupatou, esepte nan peyi l', lakay li ak nan fanmi li.5 Se konsa li pa t' kapab fè okenn mirak la, esepte pou de ou twa moun malad. Li te mete men sou tèt yo, li geri yo.6 Jezi te sezi wè jan yo pa t' kwè nan li. Apre sa, Jezi te mache nan tout ti bouk nan vwazinaj la. Li t'ap moutre moun yo anpil bagay.7 Lè sa a, Jezi rele douz disip li yo, li voye yo de pa de. Li ba yo pouvwa chase move lespri.8 Li pase yo lòd sa a: -Pa pran anyen pou vwayaj la, esepte yon baton. Pa pote ni pen, ni sak. Pa mete lajan nan pòch nou.9 Nou mèt mete sapat nan pye nou. Men, pa mete de rad sou nou.10 Epi li di yo ankò: -Lè nou rive nan yon lavil, rete nan yon sèl kay, kay kote y'a resevwa nou an, jouk nou pati.11 Men, si nou rive yon kote nou wè pesonn pa vle resevwa nou, pesonn pa vle koute nou, ale fè wout nou. Souke pousyè pye nou. Konsa, yo p'ap ka di nou pa t' avèti yo.12 Douz disip yo pati; y' al mache bay nouvèl la pou tout moun tounen vin jwenn Bondye.13 Yo te chase anpil move lespri. Yo te pase lwil sou anpil moun malad, yo te geri yo.14 Wa Ewòd te tande pale sou Jezi, paske yo t'ap nonmen non l' toupatou. Gen moun ki t'ap di: -Se Jan Batis ki leve pami mò yo, se poutèt sa li kapab fè tout mirak sa yo.15 Gen lòt ki t'ap di tou: -Se Eli. Epi gen lòt ankò ki t'ap di: -Se yon pwofèt tankou ansyen pwofèt yo.16 Men, lè Ewòd tande sa, li di konsa: -Se Jan wi. Mwen te fè koupe tèt li. Men, li tounen vivan ankò.17 Se Ewòd menm ki te voye arete Jan. Li te fè mete l' nan prizon poutèt Ewodyad. EwòdRive 101. Mastering Rive: Vector Animation
Bourne, le village et la rivière est majestueuse.Croisière fluviale sur la Bourne depuis Saint-Nazaire-en-RoyansEnvie d’être transporté sur les rives du Mississipi dans les années 1880, sur un steamboat à l’embouchure de la Louisiane ? La croisière fluviale de Saint-Nazaire-en-Royans cultive cette atmosphère délicieusement rétro, avec un bateau à aube rouge et blanc dans un style qui nous évoque le sud américain. Le bateau à aube de St Nazaire en RoyansRiches en oiseaux et en poissons, couvertes de roseaux et de criques mystérieuses, les rives sauvages de la Bourne n’évoquent-elles pas un peu les bayous ? Plongez dans cette atmosphère évocatrice en remontant la Bourne jusqu’à l’Isère. Côté Bourne, c’est le paradis de l’observation naturaliste : on guette les hérons, les ragondins, les oiseaux qui nichent dans cette rivière réserve de biodiversité. Puis la Bourne se jette dans l’Isère, et c’est le patrimoine qui retient toute votre attention : les tuiles vernissées des beaux villages du Royans, et le passage par le Jardin des Fontaines pétrifiantes, magnifique curiosité sur la rive iséroise.Le bateau marquait autrefois l’arrêt au Jardin des fontaines pétrifiantes, ce n’est plus le cas aujourd’hui : il vous ramène à Saint-Nazaire. Mais vous pouvez tout à fait compléter votre visite du Royans sur la rive iséroise par deux heures dans ce jardin remarquable, qui est un des plus beaux de la région à mes yeux. Ici, l’eau chargée de calcaire pétrifie peu à peu la mousse, sculptant d’impressionnantes concrétions qu’on nomme tuffières : le tuf, c’est cette roche très légère, alliage de calcaire et de végétaux minéralisés, qui crée de fabuleux décors. Moi qui suis amoureuse des tuffières depuis ma visite de la grande cascade de Digne-les-Bains, j’ai été émerveillée par l’atmosphère féerique du jardin des fontaines pétrifiantes, entre cascades de tuf grandioses, curiosités biologiques, fleurs rares et installations artistiques. Une virée à la fois belle, ludique et apaisante, du côté isérois du Vercors dans la région de Saint Marcellin.Le jardin des fontaines pétrifiantesEt si vous vous êtes pris de passion pour les fontaines de tuf, sachez que vous pourrez en admirer de belles à Pont-en-Royans au coeur du village, à côté de la grotte de Choranche, et à la Cascade verte à Sainte Eulalie en Royans. Il est temps de vous parler des cascades du Vercors !Cascades du Vercors drômoisChute de la Druise, cascade verte, cascade blanche… le Vercors drômois regorge de cascades fabuleuses. J’en évoquais plusieurs dans. Export your Rive animation, into a .rive file. Rive export rive file Tech Breeze countries animations. 3. The .rive file. After exporting the file please pay attention to the sizerive-app/rive-react-native - GitHub
And a prototyping platform. With built-in support for animations and code-based interactions, it’s perfect for creating realistic prototypes. Advantages:Code-based customization for flexibility.Smooth workflow for animations and interactions.Disadvantages:Requires some coding knowledge for advanced features.Price:Free for individuals; paid plans start at $15/month.7. RiveIf you ever wish your mobile app animations could feel more dynamic and fluid without slowing things down, that’s where Rive comes in. Unlike traditional frame-based animation tools, Rive is all about real-time interactivity. It lets you create sleek, lightweight animations that respond to user interactions on the fly, whether it’s a button press, a menu expanding, or an onboarding animation that flows smoothly. Advantages:Real-time, state-machine-based animationsLightweight and optimized for mobile performanceWorks across multiple platforms, including iOS and AndroidOpen-source runtimes for seamless integration into appsDisadvantages:Requires some learning curve for developers to implement animations in mobile appsNot as beginner-friendly as some other UI prototyping toolsPrice:Free plan available, Pro starts at $32/month8. Axure RPAxure RP is known for its robust prototyping features, including animations and dynamic panels. It’s excellent for creating complex user flows with animations. Advantages:Supports detailed interactions and animations.Great for UX designers who need depth.Disadvantages:Interface can feel overwhelming.Price:Starts at $29/month per user.9. Origami StudioThe free tool created by Facebook is designed specifically for creating advanced animations and prototypes. Origami Studio is perfect for mobile app designers who want to experiment with transitions, interactions, and complex animations. Advantages:Powerful features for detailed, interactive animations.Great for exploring transitions and gesture-based interactions.Free to useDisadvantages:Steeper learning curve for beginners.Lacks collaborative cloud-based features.Price:Free10. FigmaFigma is another popular choice, especially for teams. It’s great for designing static UI and adding lightweight animations to transitions. With its “Smart Animate” feature, you can create smooth interactions between frames. Advantages:Cloud-based for seamless team collaboration.Easy to use for creating basic animations.Free plan available.Disadvantages:Limited animation capabilities compared to motion-specific tools.Price:Free for individuals; paid plans start at $15/month per editor.Comparison table The takeawayApp animations are more than just eye candy, they’re tools that enhance mobile experiences by making interactions smoother, clearer, and more enjoyable. Whether it’s a subtle transition that guides users seamlessly through an app flow or a dynamic loading animation that keeps engagement high, these movements play a vital role in modern mobile design.From the examples we’ve explored to the tools we’ve highlighted, it’s clear that adding animations doesn’t have to be overwhelming.At the heart of it all, great animations aren’t just about aesthetics, they’re about functionality, engagement, and storytelling. TheyComments
Rive UnityA Unity runtime library for Rive. This is currently a technical preview for Mac and Windows installs of Unity. We're hoping to gather feedback about the API and feature-set as we expand platform support.Rendering supportCurrently supported platforms and backends include:WebGLMetal on MacMetal on iOSD3D11 on WindowsOpenGL on WindowsOpenGL on AndroidPlanned support for:D3D12VulkanFeature supportThe rive-unity runtime uses the latest Rive C++ runtime.FeatureSupportedAnimation Playback✅Fit and Alignment✅Listeners✅Setting State Machine Inputs✅Listening to Events✅Updating text at runtime✅Out-of-band assets✅Procedural rendering✅PNG images✅WEBP and JPEG images✅Table of contents⭐️ Rive Overview🚀 Getting Started👨💻 Contributing❓ IssuesRive overviewRive is a real-time interactive design and animation tool that helps teamscreate and run interactive animations anywhere. Designers and developers use our collaborativeeditor to create motion graphics that respond to different states and user inputs. Our lightweightopen-source runtime libraries allow them to load their animations into apps, games, and websites.🏡 Homepage📘 General help docs · Rive Unity docs🛠 Learning RiveGetting startedSee the official examples repository to easily run a project locally: the Rive Unity docs for more information.You will need a Unity editor that supports OpenGL or D3D11 for Windows, or a Mac with ARM64 (M1, M2, etc) architecture and OS 11.0 or later.Select either D3D11/OpenGL for Windows, or Metal for Mac/iOS as the Graphics API under Project Settings -> Player in Unity.You can install the Rive package for Unity by opening the Package Manager (Window -> Package Manager) and adding the latest release as a git dependency, for example (replace 0.0.0 with the latest release):[email protected]:rive-app/rive-unity.git?path=package#v0.0.0Or through HTTP (replace 0.0.0 with the latest release): can also add it manually to your projects Packages/manifest.json file (replace 0.0.0 with the latest release):{ "dependencies": { "app.rive.rive-unity": "[email protected]:rive-app/rive-unity.git?path=package#v0.0.0" }}Awesome RiveFor even more examples and resources on using Rive at runtime or in other tools, checkout the awesome-rive repo.ContributingWe love contributions! Check out our contributing docs to get
2025-03-28Rive React NativeA React Native runtime library for Rive.This library is a wrapper around the iOS/Android runtime, providing a component and ref pattern for React Native applications.Table of contents⭐ Rive Overview🚀 Getting Started & API docs🔍 Supported Devices📚 Examples🏃 Migration Guides👨💻 Contributing❓ IssuesRive OverviewRive is a real-time interactive design and animation tool that helps teams create and run interactive animations anywhere. Designers and developers use our collaborative editor to create motion graphics that respond to different states and user inputs. Our lightweight open-source runtime libraries allow them to load their animations into apps, games, and websites.🏡 Homepage📘 General help docs🛠 Resources for building in RiveGetting StartedFollow along with the link below for a quick start in getting Rive React Native integrated into your multi-platform applications.Getting Started with Rive in React NativeAPI documentationSupported DevicesBecause this runtime library has a dependency on the Rive Android and Rive iOS runtimes, the supported devices align with each of these dependencies minimum supported devices, as well as the minimum device requirements of the React Native framework.iOS: 14.0+Android:Minimum SDK version: 21Target SDK version: 33ExamplesCheck out the example/ folder to run an example application using the Rive React Native runtime. It runs on the local build of this library, and showcases a number of ways to use the Rive component and useRef hook pattern:Setting a Rive file via a URL, or asset in the Android/iOS projectsDisplaying single or multiple animations / artboards on one componentSetting up and maniuplating a state machine via inputs...and more!Steps:Run yarn bootstrapcd exampleyarn expo run:android or yarn expo run:iosiOS:You may need to run pod install (first time) or pod update RiveRuntime (updates to the underlying Rive iOS runtime) in the example/iOS folder to get the runtime installed or updatedMigration GuidesUsing an older version of the runtime and need to learn how to upgrade to the latest version? Check out the migration guides below in our help center that help guide you through version bumps; breaking changes and all!Migration guidesContributingWe love contributions! Check out our contributing docs to get more details into how to run this project, the examples, and more all locally.IssuesHave an issue with using the runtime, or want to suggest a feature/API to help make your development life better? Log an issue in our issues tab! You can also browse older issues and discussion threads there to see solutions that may have worked for common problems.
2025-03-26作者:京东物流 沈明亮在App开发过程中,如果想实现动画效果,可以粗略分为两种方式。一种是直接用代码编写,像平移、旋转等简单的动画效果,都可以这么干,如果稍微复杂点,就会对开发工程师的数学功底、图形图像学功底有很高的要求。另一种方式,可以让UI同学配合,一次性出多张图片或者直接出一张GIF图,通过短时间内快速轮播图片的方式来实现复杂动画效果,这种方式真正实现起来还是有挺多问题的,比如缺少对动画过程的控制、图片尺寸的适配等等。那么,有没有更好的解决方案呢?有的,Rive。简介Rive是专门为简化动画的实现而生的,设计师可以在其官网通过拖拉拽实现各种复杂动画效果,设计完毕后导出动画文件,工程师可以在App里直接导入此文件,配合相应的SDK即可实现。其官网有详细的开发文档,同时也有自己的社区资源,我们可以直接从社区里下载别人设计好的动画效果进行学习。另外特别重要的是,Rive支持跨平台,同时支持Android、iOS、Flutter、JS、React、C++等等,本文以Flutter的实现为例介绍。一个完整的例子登陆Rive官网进行设计,并导出相应的动画文件,Rive的动画文件是以.riv结尾。本文示例是从官网的社区里找的一个个人比较喜欢的动效。依次运行下面的命令,引入rive sdk。将导出的.riv文件放到资源目录下,并修改pubspec.yaml文件。加载动画文件并展示的核心代码:核心代码就这么多,对于代码中的标注详细说明下:标注1的地方,主要作用是获取状态机控制器,fromArtboard 方法有两个参数,第二个参数是状态机的名称,这个名称需要和UI同学协商好,一旦确定好名称就不允许设计同学再改了,对应于设计面板界面的左下角,如下图:标注2的地方,本例的动画是根据“数值”的变化而变化的,findInput的入参同样需要和UI同学协商好,一旦设计时把这个名字改了,代码里也别忘了进行相应的修改,也在设计面板的左下角,在状态机名称的右边,如下图:完整的代码如下,大家可以按步骤自己操作体验下。class RiveDemo extends StatefulWidget { const RiveDemo({Key? key}) : super(key: key); @override State createState() => _RiveDemoState();}class _RiveDemoState extends State { /// 状态机控制器 StateMachineController? controller; /// 控制输入数值 SMIInput? valueController; ///画板,配合Rive widget 使用,展示动画效果。 Artboard? riveArtboard; Timer? timer; @override void initState() { super.initState(); //加载 rootBundle.load('asset/rives/rive_demo.riv').then((value) async { final file = RiveFile.import(value); final artboard = file.mainArtboard; //1 controller = StateMachineController.fromArtboard(artboard, 'TreeMachine'); if (controller != null) { setState(() { artboard.addController(controller!); //2 valueController = controller!.findInput('input'); valueController!.value = -4; }); } riveArtboard = artboard; }); } @override void dispose() { controller?.dispose(); stopAnimation(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Rive Demo'), ), backgroundColor: Colors.white, body: Center( child: riveArtboard == null ? const CircularProgressIndicator() : Rive(artboard: riveArtboard!), ), floatingActionButton: SizedBox( height: 50, child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ TextButton( onPressed: () { startAnimation(); }, child: const Text('start'), ), TextButton( onPressed: () { stopAnimation(); }, child: const Text('stop'), ), TextButton( onPressed: () { resetAnimation(); }, child: const Text('reset'), ), ], ), ), ); } /// 开始动画 void startAnimation() { if (timer != null) { return; } timer = Timer.periodic(const Duration(milliseconds: 60), (timer) { valueController?.value += 0.5; }); } /// 停止动画 void stopAnimation() { timer?.cancel(); timer = null; } /// 重置动画 void resetAnimation() { stopAnimation(); valueController?.value = 0; }}总结像本例中的动画效果,如果用代码来编写,时间成本会很大很大,如果靠图片的堆积,实现起来也很麻烦,而且由于图片的数量增多,安装包的体积也会增加很多。但是用rive,实现起来却很方便,可能唯一的成本就是设计师同学的学习成本。Rive不仅支持本地动画文件的加载,还可以将动画文件放到服务器上,利用RiveAnimation.network方法进行加载。更多的使用示例可以参考:
2025-03-26Yo tounen soti byen lwen. Kite pitit fi m' yo tounen soti toupatou sou latè. 7 Se pèp mwen yo ye. Se mwen menm ki kreye yo pou yo ka sèvi yon lwanj pou mwen. Se mwen menm menm ki te fè yo. Se nan men mwen yo soti. 8 ¶ Seyè a di ankò: -Fè pèp la konparèt devan m'. Se yon bann moun ki gen je men ki pa wè. Yo gen zòrèy men yo pa tande. 9 Rele tout nasyon yo, fè yo tout reyini ansanm. Fè yo sanble nan tribinal la. Kilès nan bondye moun sa yo ki te di davans sa ki gen pou rive a? Kilès ki te fè nou konnen bagay k'ap rive koulye a? Fè bondye sa yo vini ak temwen ki pou kanpe pale pou yo. Lè y'a tande yo, y'a ba yo rezon! 10 Men pawòl Seyè a di: -Se nou menm menm ki pou sèvi m' temwen. Se nou menm mwen te chwazi pou sèvi m', pou nou konnen m', pou nou kapab mete konfyans nou nan mwen, pou nou ka konprann se mwen menm sèl ki Bondye tout bon an. Anvan mwen, pa t' gen lòt bondye. Apre mwen, p'ap gen lòt bondye. 11 Se mwen menm sèl ki Granmèt la, Seyè a. Pa gen lòt ki ka delivre nou pase mwen menm! 12 Se mwen menm ki te di nou davans sa ki gen pou rive. Se mwen menm ki delivre nou. Pa gen ankenn lòt bondye
2025-03-28Animation's value, making it easy to create dynamic and interactive animations.class AnimatedBox extends StatefulWidget { @override _AnimatedBoxState createState() => _AnimatedBoxState();}class _AnimatedBoxState extends State with SingleTickerProviderStateMixin { AnimationController _controller; Animation _animation; @override void initState() { super.initState(); _controller = AnimationController(vsync: this, duration: Duration(seconds: 1)); _animation = Tween(begin: 0, end: 1).animate(_controller); _controller.forward(); } @override Widget build(BuildContext context) { return AnimatedBuilder( animation: _animation, builder: (context, child) { return Container( width: 100 _animation.value, height: 100 _animation.value, color: Colors.blue, ); }, ); } @override void dispose() { _controller.dispose(); super.dispose(); }}I'm torn between using ImplicitlyAnimatedWidget and AnimatedBuilder, but ultimately, AnimatedBuilder offers more flexibility for complex animations.Flare and RiveFor even more advanced animations, tools like Flare and Rive are invaluable. These tools allow you to create complex vector animations that can be easily integrated into your Flutter app.Flare and Rive provide a visual editor for creating animations, which can then be exported as Flutter widgets. This approach is particularly useful for creating intricate animations that would be difficult to achieve with code alone.Maybe I should clarify that while Flare and Rive are powerful, they do add some complexity to your project. Use them judiciously.Advanced Networking TechniquesNetworking is a fundamental aspect of most mobile applications. In 2024, advanced networking techniques are essential for building robust and efficient apps.GraphQL: A Flexible Alternative to RESTGraphQL has emerged as a powerful alternative to REST for API development. GraphQL allows clients to request exactly the data they need, reducing over-fetching and under-fetching.import 'package:graphql_flutter/graphql_flutter.dart';final HttpLink httpLink = HttpLink(uri: ' ValueNotifier client = ValueNotifier( GraphQLClient(cache: InMemoryCache(), link: httpLink),);Is this the best approach? Let's consider the alternatives.WebSockets: Real-Time CommunicationFor applications that require real-time communication, WebSockets are indispensable. WebSockets provide a full-duplex communication channel over a single TCP connection, making them ideal for real-time updates.import 'package:web_socket_channel/web_socket_channel.dart';final channel = WebSocketChannel.connect(Uri.parse('wss://your-websocket-endpoint.com'));channel.stream.listen((message) { print('Received message: $message');});channel.sink.add('Hello, WebSocket!');I'm torn between using
2025-04-05Bib la en Kreyol > Liv Mak > Chapit 6Nòt: Klike sou nenpòt vèsè, w ap ka li vèsè sa a an 3 lang... Kreyòl, Anglais, ak Fransè. Chwazi yon lot langaj nan menu a goch la si w ta vle li Mak Chapit 6 nan lot lang la...1 Jezi kite kote l' te ye a, li ale nan lavil kote l' te grandi a. Disip li yo te ale avè l' tou.2 Lè jou repo a rive, li kòmanse moutre moun ki te nan sinagòg la anpil bagay. Foul moun ki t'ap koute l' yo te sezi anpil, yo t'ap di konsa: -Kote l' jwenn tout bagay sa yo? Kilès ki ba l' konesans sa yo? Kouman li fè fè tout mirak sa yo?3 Se pa ti bòs chapant pitit Mari a? Se pa frè Jak, Jòz, Jid ak Simon an? Apa tout sè l' yo la avèk nou? Se sa ki fè li te tounen pou yo yon okazyon tonbe nan peche.4 Lè sa a, Jezi di yo: -Yon pwofèt jwenn respè toupatou, esepte nan peyi l', lakay li ak nan fanmi li.5 Se konsa li pa t' kapab fè okenn mirak la, esepte pou de ou twa moun malad. Li te mete men sou tèt yo, li geri yo.6 Jezi te sezi wè jan yo pa t' kwè nan li. Apre sa, Jezi te mache nan tout ti bouk nan vwazinaj la. Li t'ap moutre moun yo anpil bagay.7 Lè sa a, Jezi rele douz disip li yo, li voye yo de pa de. Li ba yo pouvwa chase move lespri.8 Li pase yo lòd sa a: -Pa pran anyen pou vwayaj la, esepte yon baton. Pa pote ni pen, ni sak. Pa mete lajan nan pòch nou.9 Nou mèt mete sapat nan pye nou. Men, pa mete de rad sou nou.10 Epi li di yo ankò: -Lè nou rive nan yon lavil, rete nan yon sèl kay, kay kote y'a resevwa nou an, jouk nou pati.11 Men, si nou rive yon kote nou wè pesonn pa vle resevwa nou, pesonn pa vle koute nou, ale fè wout nou. Souke pousyè pye nou. Konsa, yo p'ap ka di nou pa t' avèti yo.12 Douz disip yo pati; y' al mache bay nouvèl la pou tout moun tounen vin jwenn Bondye.13 Yo te chase anpil move lespri. Yo te pase lwil sou anpil moun malad, yo te geri yo.14 Wa Ewòd te tande pale sou Jezi, paske yo t'ap nonmen non l' toupatou. Gen moun ki t'ap di: -Se Jan Batis ki leve pami mò yo, se poutèt sa li kapab fè tout mirak sa yo.15 Gen lòt ki t'ap di tou: -Se Eli. Epi gen lòt ankò ki t'ap di: -Se yon pwofèt tankou ansyen pwofèt yo.16 Men, lè Ewòd tande sa, li di konsa: -Se Jan wi. Mwen te fè koupe tèt li. Men, li tounen vivan ankò.17 Se Ewòd menm ki te voye arete Jan. Li te fè mete l' nan prizon poutèt Ewodyad. Ewòd
2025-04-22