{"id":13535720,"url":"https://github.com/m1ga/ti.animation","last_synced_at":"2026-02-18T14:07:57.393Z","repository":{"id":40633413,"uuid":"77227313","full_name":"m1ga/ti.animation","owner":"m1ga","description":"Airbnb Lottie + Rive animation module for Titanium SDK","archived":false,"fork":false,"pushed_at":"2025-08-27T13:27:42.000Z","size":119401,"stargazers_count":106,"open_issues_count":4,"forks_count":18,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-08-27T22:34:38.564Z","etag":null,"topics":["airbnb-lottie","android","facebook-keyframe","ios","keyframes","lottie","riveapp","titanium","titanium-mobile","titanium-module","titanium-sdk"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m1ga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"m1ga"}},"created_at":"2016-12-23T13:31:23.000Z","updated_at":"2025-08-27T13:27:46.000Z","dependencies_parsed_at":"2025-05-10T11:32:07.210Z","dependency_job_id":null,"html_url":"https://github.com/m1ga/ti.animation","commit_stats":{"total_commits":141,"total_committers":9,"mean_commits":"15.666666666666666","dds":"0.33333333333333337","last_synced_commit":"77af11c6dcdafae754148a82d2de395eb75f3172"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/m1ga/ti.animation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m1ga%2Fti.animation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m1ga%2Fti.animation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m1ga%2Fti.animation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m1ga%2Fti.animation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m1ga","download_url":"https://codeload.github.com/m1ga/ti.animation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m1ga%2Fti.animation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29581590,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T13:56:48.962Z","status":"ssl_error","status_checked_at":"2026-02-18T13:54:34.145Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airbnb-lottie","android","facebook-keyframe","ios","keyframes","lottie","riveapp","titanium","titanium-mobile","titanium-module","titanium-sdk"],"created_at":"2024-08-01T09:00:24.020Z","updated_at":"2026-02-18T14:07:57.388Z","avatar_url":"https://github.com/m1ga.png","language":"Objective-C","funding_links":["https://github.com/sponsors/m1ga","https://www.buymeacoffee.com/miga"],"categories":["Libraries","Objective-C"],"sub_categories":["Creation Tools"],"readme":"# Ti.Animation\n\n#### Titanium module to support smooth and scalable animations using [Airbnb Lottie](https://lottie.airbnb.tech/) and [Rive](rive.app) (Android only).\n\n\n![gif](animation.gif)\n\n\n## Requirements\n\n- Android: Titanium SDK 13.0.0+\n- iOS: Titanium SDK 12.0.0+\n\n## Library versions:\n\nThe Titanium modules use external libraries\n\n|Library|Platform|Version|\n|---|---|---|\n| [Airbnb Lottie](https://github.com/airbnb/lottie-android) | Android | 6.7.1 |\n| [Airbnb Lottie](https://github.com/airbnb/lottie-ios) | iOS | 4.5.1 |\n| [Rive](https://github.com/rive-app/rive-android/) | Android | 10.1.4 |\n\n## Create a View\n\n```js\nvar animation = TiAnimation.createAnimationView({\n  file: '/file.json',\n  loop: false,\n  autoStart: false\n});\n```\n\nor in Alloy:\n```xml\n\u003cAnimationView id='view_lottie' module='ti.animation' /\u003e\n```\n\n## Update native Libraries\n\n- iOS: Use Carthage and `carthage update` to compile the framework automatically. Then, copy the output from `ios/Carthage/Build/iOS` to `ios/platform/`.\n- Android: change the version number in `build.gradle`\n\n## Features/Documentation\n\n## Methods\n\nName | Parameter | Info | Platforms\n--- | --- | --- | -- |\nstart() | | Starts an animation from the beginning | iOS, Android |\nstart(int from, int to) | Startframe, Endframe | Plays an animation from frame `from` to `to` | Android |\nstart({string animationName, bool loop}) |  | Plays the rive animation  | Android (Rive only) |\npause() | | Pause an animation | iOS, Android |\nresume() | | Resumes an animation from the current point | iOS, Android |\nstop() | | Stops an animation an resets it | iOS, Android |\naddEventListener(String event, Callback function) | Event name as string\u003cbr\u003eCallback function | Adds events to the animation view | iOS, Android |\nsetFile(String path) | File path as string | Sets the current animation, Files go into app/assets/ (Alloy) | iOS, Android |\nsetText(String layer, String text) | Layer, Text | Sets the text in the layer `layer` to `text` | Android |\n\n## Properties\n\nName | Parameter | Info | Framework | Platforms\n--- | --- | --- | --- | --- |\nprogress | float | Get/set the current progress (in percentage) | Lottie | Android |\nloop | boolean | Get/set if the animation should loop | Lottie |  Android |\nspeed | float | Get/set the speed of the animation | Lottie |  Android |\nduration | float | Get/set the duration of the animation | Lottie | Android |\nisPlaying | boolean | Get the animation status | Lottie | Android |\ncache() | boolean | - | Lottie | iOS |\nanimationName | String or Array | Sets the Rive animation name | Rive | Android |\nnewRenderingEngineEnabled | boolean | Use the core animation background rendering engine instead of the main thread | Lottie | iOS |\n\ncreation (tss) only:\n\nName | Parameter | Info | Platforms\n--- | --- | --- | --- |\nassetFolder|String|If your animation contains images put the folder inside the assetFolder (e.g. `images/` and put the image files inside `app/assets/images/`) | Android |\nfile | String | JSON file or URL to a file. Files go into app/assets/ (Alloy)\u003cbr/\u003eAndroid: Support for dotLottie files in 4.1.0+ | iOS, Android |\njsonString | String | Pass a raw JSON string to the module | iOS |\nloop | boolean | loop the animation | iOS, Android |\nautoStart | boolean | automatically start the animation | iOS, Android |\nanimationType | int | One of the constants `ANIMATION_LOTTIE` or `ANIMATION_RIVE` | iOS, Android |\n\n\n## Events\n\nName |  Info | Properties | Platforms\n--- |  --- | --- | --- |\ncomplete | When the animation is done | Status:int, Loop:boolean | iOS, Android |\nupdate | Fires during the animation | Frame:int, status:int (ANIMATION_START, ANIMATION_END, ANIMATION_CANCEL, ANIMATION_REPEAT, ANIMATION_RUNNING)  | Android |\n\n## Constants\n\nName |  Platforms\n--- |  --- |\nANIMATION_RIVE |  Android |\nANIMATION_LOTTIE |  Android |\n\nused in setValueDelegateForKeyPath.type (iOS):\n\nName |  Platforms\n--- |  --- |\nCALLBACK_COLOR_VALUE |  iOS |\nCALLBACK_NUMBER_VALUE |  iOS |\nCALLBACK_POINT_VALUE |  iOS |\nCALLBACK_SIZE_VALUE |  iOS |\nCALLBACK_PATH_VALUE |  iOS |\n\n\n## Example\n\n```xml\n\u003cAnimationView id='view_lottie' module='ti.animation' /\u003e\n```\n\n```js\n'#view_lottie': {\n  file: 'data.json',\n  assetFolder: 'images/', // Android-only\n  width: Ti.UI.SIZE,\n  height: Ti.UI.SIZE,\n  borderColor: '#000',\n  borderWidth: 1\n}\n```\n\nPlease see the basic example in `example/app.js`. More examples can found in the [wiki](https://github.com/m1ga/ti.animation/wiki)\n\n\n## Issue\n\nIf you scale your view bigger and you have some jagged lines you need to add `disableHardwareAcceleration:true` to your tss file. Performance will be slower in most cases but quality is better\n\n\n## Resources\n\n* At [LottieFiles](http://www.lottiefiles.com/) you will find a list of free Lottie animations.\n* Elephant animation by \u003ca href=\"https://lottiefiles.com/user/266156\"\u003eLottieFiles - weejkqwjlkejlk2\u003c/a\u003e\n\n## Authors\n\n- Hans Knöchel ([@hansemannnn](https://twitter.com/hansemannnn) / [Web](http://hans-knoechel.de))\n- Michael Gangolf ([@MichaelGangolf](https://twitter.com/MichaelGangolf) / [Web](http://migaweb.de)) \u003cspan class=\"badge-buymeacoffee\"\u003e\u003ca href=\"https://www.buymeacoffee.com/miga\" title=\"donate\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy%20me%20a%20coke-donate-orange.svg\" alt=\"Buy Me A Coke donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm1ga%2Fti.animation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm1ga%2Fti.animation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm1ga%2Fti.animation/lists"}