当前位置: 首页 > 软件库 > 手机/移动开发 > >

NewAndroidArchitecture-Component-Github

授权协议 Apache-2.0 License
开发语言 Java
所属分类 手机/移动开发
软件类型 开源软件
地区 不详
投 递 者 雷硕
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

NewAndroidArchitecture-Github

Android app on Google Play

Sample project based on the new Android Component Architecture

Lifecycle, LiveData, MVVM, ViewModels, DataBinding, Dagger, Retrofit

https://developer.android.com/topic/libraries/architecture/guide.html

Alt sample

LiveData as Observables !

LiveDatas works like RxJava's Observables,they will notify the observer when the data is Available

@Override
public LiveData<User> getUser(String userName){
    final MutableLiveData<User> liveData = new MutableLiveData<>();

    githubAPI.user(userName).enqueue(new Callback<User>() {
            @Override
            public void onResponse(Call<User> call, Response<User> response) {
                if(response.isSuccessful()) {
                    liveData.setValue(response.body());
                }
            }

            @Override
            public void onFailure(Call<User> call, Throwable t) {

            }
        });

    return liveData;
}

LifeCycle Owner

Use Support Fragment and AppCompatActivity to be attached to the application's state

public class MainFragment extends Fragment {

DataBinding and ViewHolders

MainFragment.java

reposAdapter = new ReposAdapter();
viewDataBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
viewDataBinding.recyclerView.setAdapter(reposAdapter);

AppComponent.from(getContext()).inject(this);
//inject the viewmodel responding to User
//inject the viewmodel responding to List<Repo>

//fetch the user from the datasource
userViewModel.getUser("florent37")
                .observe(this, new Observer<User>() {
                    @Override
                    public void onChanged(@Nullable User user) {
                        viewDataBinding.setUser(user);
                    }
                });

//fetch the repos from the datasource
reposListViewModel.getRepos("florent37")
                .observe(this, new Observer<List<Repo>>() {
                    @Override
                    public void onChanged(@Nullable List<Repo> repos) {
                        //when available, send it to the recyclerview
                        reposAdapter.setRepos(repos);
                    }
                });

Dagger and Repository

public class UserViewModel extends ViewModel {

    private final GithubRepository githubRepository;

    @Inject
    public UserViewModel(GithubRepository githubRepository) {
        this.githubRepository = githubRepository;
    }

    public LiveData<User> getUser(String userName) {
        //userLiveData will be notified when the user is fetched
        return githubRepository.getUser(userName);
    }
}
Android app on Google Play

Fiches Plateau Moto : https://www.fiches-plateau-moto.fr/

  • 修改本地hosts文件 用编辑工具打开 windows系统的hosts文件的位置如下:C:\Windows\System32\drivers\etc\hosts mac/linux系统的hosts文件的位置如下:/etc/hosts 增加http://github.global.ssl.fastly.net和http://github.com的映射 获取Github相关网站的ip 访问https:

  • 配置好的host地址: 手动自己找是比较繁琐的,这里分享一个代码,自动生成Hosts 某大佬分享的仓库: https://github.com/521xueweihan/GitHub520 自己手动配置 通过下面网址查询最新的IP地址: https://github.com.ipaddress.com https://www.ipaddress.com 然后配置到host中 202103 IP地址

  • Vue-Video-Player video.jsplayer component for Vue. 适用于 Vue 的video.js播放器组件。 Example Install CDN Vue.use(window.VueVideoPlayer) NPM npm install vue-video-player --save Mount mount with global import Vue

  • JavaSpecial - GitHub - 基础技术扩展 // 博客中的代码大部分会收录我的这个项目中,有更新 // Github 地址如下,记得star或者fork https://github.com/FrankZuozuo/JavaSpecial // 喜欢的可以关注此博客

  • 我是从github网站上搜索到的,这个组件不错 web页面采用VUE写的一个上传文件的组件,利用了html5的特性, 一、Html5是可以批量选择本地文件的 二、html5也可以选择文件夹进行上传的。 三、html5还可以把大文件切版上传。 四、html5支持拖拽文件 vue-upload-component 就是利用了html5的特性,然后用vue封装了这样的一个组件。 该组件的特点是,支持拖拽

 相关资料
  • 此绑定用于将组件插入DOM元素并可选地传递参数。 这种绑定可以通过以下两种方式实现 - Shorthand Syntax Full syntax 速记语法 在此方法中,仅指定组件名称而不指定任何参数。 Syntax <div data-bind = 'component: "component-name"'></div> 传递的参数值可以是可观察的。 因此,每当可观察的更改时,将丢弃旧的组件实例

  • 介绍 (Introduction) 类Component是AWT的非菜单用户界面控件的抽象基类。 Component表示具有图形表示的对象。 类声明 以下是java.awt.Component类的声明: public abstract class Component extends Object implements ImageObserver, MenuContainer, S

  • 介绍 (Introduction) 类Component是AWT的非菜单用户界面控件的抽象基类。 Component表示具有图形表示的对象。 Class 声明 (Class Declaration) 以下是java.awt.Component类的声明 - public abstract class Component extends Object implements Image

  • Component 是一个对客户端 JavaScript 包进行管理的工具,用于更好的构建 Web 应用。 特点: 编写模块化 commonjs 组件 编写包含样式、图片、脚本等内容的组件 无需注册表发布或者帐号,使用 github 资料库 可通过 component-YOURCOMAND git 风格来扩展子命令 组件骨架创建的命令 从命令或者 ./component.json 中安装依赖 av

  • Props: is - string | ComponentDefinition | ComponentConstructor inline-template - boolean 用法: 渲染一个“元组件”为动态组件。依 is 的值,来决定哪个组件被渲染。 Vue.config.optionMergeStrategies._my_option = function (parent, child,

  • 组件要求是不涉及具体业务的逻辑、粒度合理的单元。 一般来讲,组件分为项目公共组件、全局组件和页面级别组件三类。 公共组件:通过 npm 维护,项目使用package.json引入 全局组件:放到项目的src/components/,主要是全局性的,或通用性很强的组件,具备良好的封装性 页面级别组件:放在页面的pages/*/components下面维护,仅限本页面内使用 注意: 百度公司内部更加详