{"id":21129945,"url":"https://github.com/fenli/elf","last_synced_at":"2025-07-09T01:31:51.089Z","repository":{"id":25483244,"uuid":"28914087","full_name":"fenli/elf","owner":"fenli","description":"Efl is an Android Framework to simplify the android development process","archived":false,"fork":false,"pushed_at":"2016-08-17T11:21:47.000Z","size":255,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-06-30T07:04:55.280Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fenli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-07T12:45:59.000Z","updated_at":"2020-12-12T01:08:20.000Z","dependencies_parsed_at":"2022-08-24T02:41:04.425Z","dependency_job_id":null,"html_url":"https://github.com/fenli/elf","commit_stats":null,"previous_names":[],"tags_count":13,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fenli%2Felf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fenli%2Felf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fenli%2Felf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fenli%2Felf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fenli","download_url":"https://codeload.github.com/fenli/elf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225476382,"owners_count":17480215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-20T05:32:04.659Z","updated_at":"2024-11-20T05:32:06.539Z","avatar_url":"https://github.com/fenli.png","language":"Java","funding_links":[],"categories":["Libs"],"sub_categories":["\u003cA NAME=\"Framework\"\u003e\u003c/A\u003eFramework"],"readme":"# ![Logo](https://github.com/fenli/elf/blob/master/sample/src/main/res/mipmap-mdpi/ic_launcher.png) Elf Framework\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.fenlisproject.elf/core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.fenlisproject.elf/core) \n\nEfl is an Android Framework to simplify the android development process. It has many commonly used features like annotation binding, fast http connection wrappers, file utils, simple data caching, etc.\n\n## Current Features\n- Annotation Based Binding ([View](https://github.com/fenli/elf/wiki/View-Binding), [Event Listener](https://github.com/fenli/elf/wiki/Event-Listener-Binding), [Intent Extra](https://github.com/fenli/elf/wiki/Intent-Extra-Binding), etc)\n- [Http Request](https://github.com/fenli/elf/wiki/Http-Request) (Simple, Lightweight, Support Multipart Request Body)\n- [Preferences Storage](https://github.com/fenli/elf/wiki/Preferences-Storage)\n- [Simple Session Storage](https://github.com/fenli/elf/wiki/Session-Storage) (Object Caching)\n- [Secure Session Storage](https://github.com/fenli/elf/wiki/Secure-Session-Storage) (Encrypted)\n- [Extended Widget](https://github.com/fenli/elf/wiki/Extended-Widget) (TextView, EditText, Button, Checkbox, RadioButton)\n- [Form Validation](https://github.com/fenli/elf/wiki/Form-Validation)\n- [Common Utils](https://github.com/fenli/elf/wiki/Common-Utils) (MD5, File Utils, etc)\n\n## Upcoming Features\n- Bitmap Cache\n- Asychronous JSON and XML Request\n\n## How to Use\nYou can import this library to your project by adding following dependency to your `build.gradle` :\n```gradle\nrepositories {\n    jcenter()\n}\n\ndependencies {\n    compile 'com.fenlisproject.elf:core:0.2.5'\n}\n```\n\n## Basic Setup\n- Extends BaseApplication\n\nFirst step to use this library is to Make your Application class extend BaseApplication.\n```java\npublic class SampleApplication extends BaseApplication {\n\n    @Override\n    public void onCreate() {\n        super.onCreate();\n    }\n}\n```\n\nDon't forget change application name in your manifest\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cmanifest ...\u003e\n...\n    \u003capplication\n        android:name=\"your.package.name.SampleApplication\"\u003e\n    \u003c/application\u003e\n\u003c/manifest\u003e\n```\n\n- Extends BaseActivity\n\nIn you want to utilize Binding feature, you must extends your Activity with BaseActivity.\nBaseActivity itself extends from AppCompatActivity which use Android Support Fragment (appcompatv7).\nDefine content view by `@ContentView` annotation. It will call `setContentView` for you at Runtime.\nMethod `onContentViewCreated` is called right before `onCreate` finish. You you can treat this method same as `onCreate` method. Do what you usually do in `onCreate` in this method.\n\n```java\n@ContentView(R.layout.activity_main)\npublic class MainActivity extends BaseActivity {\n\n    @ViewId(R.id.textview1)\n    private TextView textView1;\n\n    @Override\n    protected void onContentViewCreated() {\n        // Yo can safely access to textView1 in this method without call findViewById(). That's the magic\n        textView1.setText(\"Hello Elf\");\n    }\n}\n```\n\n- Extends BaseFragment\n\nIf you use Fragment, then you can extend your fragment with BaseFragment.\nAnd the other steps are same as when you use Activity.\n\n```java\n@ContentView(R.layout.fragment_home)\npublic class HomeFragment extends BaseFragment {\n\n    @Override\n    protected void onContentViewCreated() {\n        // Treat this method as onCreateView() without inflate the layout\n    }\n    \n    @OnClick(R.id.button1)\n    public void onButton1Clicked() {\n        // You can even bind button click listener without store it as variable.\n    }\n}\n```\n\n## Documentation\nFor more detailed documentation, please visit [Wiki Page](https://github.com/fenli/elf/wiki).\n\n## Release Notes\nPlease refer to [Release Notes](https://github.com/fenli/elf/blob/master/ReleaseNotes.md) to see what's recently changed.\n\n## License\n\n    Copyright 2015 Steven Lewi\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffenli%2Felf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffenli%2Felf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffenli%2Felf/lists"}