All Projects → fcfrt → Fcfrtmvp

fcfrt / Fcfrtmvp

🔥FcfrtMvp+RxHttp+RxJava(Kotlin和JAVA共用完美支持)支持一键创建MVP项目,框架简约风格及详细注释,欢迎 star or fork!

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Fcfrtmvp

Androidproject
Android 技术中台,但愿人长久,搬砖不再有
Stars: ✭ 4,398 (+19021.74%)
Mutual labels:  rxjava, rxjava2, okhttp3, mvp
iMoney
iMoney 金融项目
Stars: ✭ 55 (+139.13%)
Mutual labels:  rxjava, mvp, rxjava2, okhttp3
RxHttp
基于RxJava2+Retrofit+OkHttp4.x封装的网络请求类库,亮点多多,完美兼容MVVM(ViewModel,LiveData),天生支持网络请求和生命周期绑定,天生支持多BaseUrl,支持文件上传下载进度监听,支持断点下载,支持Glide和网络请求公用一个OkHttpClient⭐⭐⭐
Stars: ✭ 25 (+8.7%)
Mutual labels:  rxjava, rxjava2, okhttp3
BookReader
📕 "任阅" 网络小说阅读器,3D翻页效果、txt/pdf/epub书籍阅读、Wifi传书~
Stars: ✭ 6,113 (+26478.26%)
Mutual labels:  rxjava, mvp, okhttp3
Android Kotlin Mvp Architecture
This repository contains a detailed sample app that implements MVP architecture in Kotlin using Dagger2, Room, RxJava2, FastAndroidNetworking and PlaceholderView
Stars: ✭ 615 (+2573.91%)
Mutual labels:  rxjava, rxjava2, mvp
Atoms-mvp
A component architecture for android applications based on MVP
Stars: ✭ 63 (+173.91%)
Mutual labels:  mvp, rxjava2, okhttp3
eyepetizer kotlin
一款仿开眼短视频App,分别采用MVP、MVVM两种模式实现。一、组件化 + Kotlin + MVP + RxJava + Retrofit + OkHttp 二、组件化 + Kotlin + MVVM + LiveData + DataBinding + Coroutines + RxJava + Retrofit + OkHttp
Stars: ✭ 83 (+260.87%)
Mutual labels:  mvp, rxjava2, okhttp3
Fast Android Networking
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
Stars: ✭ 5,346 (+23143.48%)
Mutual labels:  rxjava, rxjava2, https
Android Clean Architecture Boilerplate
Apply clean architecture on Android
Stars: ✭ 141 (+513.04%)
Mutual labels:  rxjava, rxjava2, mvp
Crazydaily
[开源项目] 一款程序员日常放松的App,基于Material Design + MVP-Clean + Weex + Flutter + RxJava2 + Retrofit + Dagger2 + Glide + Okhttp + MTRVA + BRVAH + 炫酷控件 + 炫酷动画
Stars: ✭ 294 (+1178.26%)
Mutual labels:  rxjava2, okhttp3, mvp
Kotlinmvp
🔥 基于Kotlin+MVP+Retrofit+RxJava+Glide 等架构实现短视频类小项目,简约风格及详细注释,欢迎 star or fork!
Stars: ✭ 3,488 (+15065.22%)
Mutual labels:  rxjava, rxjava2, mvp
Androidbasemvp
🚀一个快速搭建MVP+RxJava2+Retrofit 基础框架,主要是封装有Http网络请求、日志、缓存、加载等待、toast、页面状态布局管理、权限、RxBus、Glide图片加载等组件,方便快速开发新项目、减少开发成本。
Stars: ✭ 184 (+700%)
Mutual labels:  rxjava, rxjava2, mvp
Httprequest
基于Retrofit2+RxJava2+OkHttp3的网络请求框架,可以完美的应用到组件化、MVP模式等项目中
Stars: ✭ 181 (+686.96%)
Mutual labels:  rxjava, rxjava2, okhttp3
Bilisoleil
An unofficial bilibili client for android --rxjava2+mvp+okhttp3+retrofit2+dagger2
Stars: ✭ 430 (+1769.57%)
Mutual labels:  rxjava2, okhttp3, mvp
Jd Mall Master
一款高仿京东商城的UI,基于MVP的Retrofit2(okhttp3)+rxjava+dagger2+greendao+glide。该项目系仿京东商城,属于独立开发者作品,仅供参考学习,拒绝做一切商业用途,如有侵权,请告知删除
Stars: ✭ 151 (+556.52%)
Mutual labels:  rxjava, rxjava2, mvp
Gank
gank.io unofficial client - RxJava2、Retrofit2 & MVP技术干货
Stars: ✭ 256 (+1013.04%)
Mutual labels:  rxjava, okhttp3, mvp
Novate
A safety client by Https for android, (Android网络框架,基于Retrofit和RxJava打造的链式网络库, 支持okhttp的调用风格,又兼容Retrofit API,并支持rxJava链式操作)
Stars: ✭ 1,442 (+6169.57%)
Mutual labels:  rxjava, okhttp3, https
Androidstarter
A sample Android app using the MVP architecture.
Stars: ✭ 140 (+508.7%)
Mutual labels:  rxjava, okhttp3, mvp
T Mvp
Android AOP Architecture by Apt, AspectJ, Javassisit, based on Realm+Databinding+MVP+Retrofit+Rxjava2
Stars: ✭ 2,740 (+11813.04%)
Mutual labels:  rxjava, rxjava2, mvp
Androidut
Android开发中必要的一环---单元测试(Unit Test)
Stars: ✭ 419 (+1721.74%)
Mutual labels:  rxjava2, okhttp3, mvp

FcfrtMvp

FcfrtMvp+RxHttp+RxJava(Kotlin和JAVA共用完美支持)支持一键创建MVP项目,框架简约风格及详细注释,并于基于RxokHttp做为请求框架封装,一条链就能发送任意请求,主要优势如下 :

1. 一键创建Mvp项目,解决多个文件创建分不到头脑的问题

2. 该框架只做为一个基础框架,方便开发工程师可根据自己的项目任意扩展,从而提高开发效率

3. 支持Json、DOM等任意数据解析方式,可自定义数据解析器

4. 支持Get、Post、Put、Delete等任意请求方式,可自定义请求方式

5. 支持在Activity/Fragment/View/ViewModel/任意类中,自动关闭请求

6. 支持统一加解密,且可对单个请求设置是否加解密

7. 支持添加公共参数/头部,且可对单个请求设置是否添加公共参数/头部

8. 史上最优雅的实现文件上传/下载及进度的监听,且支持断点下载

9. 史上最优雅的对错误统一处理,且不打破Lambda表达式

10. 史上最优雅的处理多个BaseUrl及动态BaseUrl

11. 30秒即可上手,学习成本极低

前言

由于本人文字功底不怎么样就不过多介绍如果有不懂的欢迎进群提问,如果觉得该框架可以的话给一个你宝贵的Star🙏,在此非常感谢RxHttp作者的大力支持。

QQ群:574181465

准备工作

首先,我们需要把框架模版中的FcfrtMvpActivity框架模板复制在Android Studio 安装包下面的\plugins\android\lib\templates\activities\下

此时重起一下Android studio即可

接下来导入我们提供的demo中的根包名处点击new->Activity->FcfrtMvp

image

如图点击后,就会出现如下图所示更具自己的所需名称及内容填写即可:

image

FcfrtMvp框架时语言的选择

如上图所示只需要做下方选择Kotlin或者Java即可 均可以完美适配两种语言。

FcfrtMvp布局规范

传统布局是这样的 传统布局属性用方法

<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPrimaryDark">
         <TextView
            android:id="@+id/tv_txt"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            android:gravity="center_vertical|center_horizontal"
            android:text="FcfrtMvp支持一键创建MVP框架。"
            android:textSize="20dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>

使用FcfrtMvp后

<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        style="@style/w_match_h_match"
        android:background="@color/colorPrimaryDark">
         <TextView
            android:id="@+id/tv_txt"
           style="@style/w_match_h_match"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            android:gravity="center_vertical|center_horizontal"
            android:text="FcfrtMvp支持一键创建MVP框架。"
            android:textSize="@dimen/font_size_40px"/>
</androidx.constraintlayout.widget.ConstraintLayout>

我们在框架类加入了布局样式及尺寸像素和字体大小模板,让代码更整洁,开发效率更高,例如: 字体大小设置:android:textSize="@dimen/font_size_40px" 代表字体:20sp 布局左边距:android:layout_marginLeft="@dimen/space_20"代表左边距:10dp

使用FcfrtMvp框架中的权限一句话搞定

 FcfrtPermissionsUtil.requestPermission(this,object :FcfrtPermissionListener{
                /**
                 * 通过授权
                 * @param permission
                 */
                override fun permissionGranted(permission: Array<out String>) {
                    showToast("授权成功")
                }

                /**
                 * 拒绝授权
                 * @param permission
                 */
                override fun permissionDenied(permission: Array<out String>) {
                    showToast("授权失败")
                }
            },*FcfrtPermission.Group.STORAGE)

使用FcfrtMvp框架中的权限配置类

object FcfrtPermission {

    const val REQUEST_INSTALL_PACKAGES = "android.permission.REQUEST_INSTALL_PACKAGES" // 8.0及以上应用安装权限

    const val SYSTEM_ALERT_WINDOW = "android.permission.SYSTEM_ALERT_WINDOW" // 6.0及以上悬浮窗权限

    const val READ_CALENDAR = "android.permission.READ_CALENDAR" // 读取日程提醒
    const val WRITE_CALENDAR = "android.permission.WRITE_CALENDAR" // 写入日程提醒

    const val CAMERA = "android.permission.CAMERA" // 拍照权限

    const val READ_CONTACTS = "android.permission.READ_CONTACTS" // 读取联系人
    const val WRITE_CONTACTS = "android.permission.WRITE_CONTACTS" // 写入联系人
    const val GET_ACCOUNTS = "android.permission.GET_ACCOUNTS" // 访问账户列表

    const val ACCESS_FINE_LOCATION = "android.permission.ACCESS_FINE_LOCATION" // 获取精确位置
    const val ACCESS_COARSE_LOCATION = "android.permission.ACCESS_COARSE_LOCATION" // 获取粗略位置

    const val RECORD_AUDIO = "android.permission.RECORD_AUDIO" // 录音权限

    const  val READ_PHONE_STATE = "android.permission.READ_PHONE_STATE" // 读取电话状态
    const val CALL_PHONE = "android.permission.CALL_PHONE" // 拨打电话
    const val READ_CALL_LOG = "android.permission.READ_CALL_LOG" // 读取通话记录
    const val WRITE_CALL_LOG = "android.permission.WRITE_CALL_LOG" // 写入通话记录
    const val ADD_VOICEMAIL = "com.android.voicemail.permission.ADD_VOICEMAIL" // 添加语音邮件
    const val USE_SIP = "android.permission.USE_SIP" // 使用SIP视频
    const val PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS" // 处理拨出电话
    const val ANSWER_PHONE_CALLS ="android.permission.ANSWER_PHONE_CALLS"// 8.0危险权限:允许您的应用通过编程方式接听呼入电话。要在您的应用中处理呼入电话,您可以使用 acceptRingingCall() 函数
    const val READ_PHONE_NUMBERS = "android.permission.READ_PHONE_NUMBERS"// 8.0危险权限:权限允许您的应用读取设备中存储的电话号码

    const val BODY_SENSORS = "android.permission.BODY_SENSORS" // 传感器

    const val SEND_SMS = "android.permission.SEND_SMS" // 发送短信
    const val RECEIVE_SMS = "android.permission.RECEIVE_SMS" // 接收短信
    const val READ_SMS = "android.permission.READ_SMS" // 读取短信
    const val RECEIVE_WAP_PUSH = "android.permission.RECEIVE_WAP_PUSH" // 接收WAP PUSH信息
    const val RECEIVE_MMS = "android.permission.RECEIVE_MMS" // 接收彩信

    const val READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE" // 读取外部存储
    const val WRITE_EXTERNAL_STORAGE = "android.permission.WRITE_EXTERNAL_STORAGE" // 写入外部存储

    const val RECEIVE_BOOT_COMPLETED ="android.permission.RECEIVE_BOOT_COMPLETED"//开机启动权限

    object Group {

        // 日历
        val CALENDAR = arrayOf(READ_CALENDAR, WRITE_CALENDAR)

        // 联系人
        val CONTACTS = arrayOf(READ_CONTACTS, WRITE_CONTACTS, GET_ACCOUNTS)

        // 位置
        val LOCATION = arrayOf(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION)

        // 存储
        val STORAGE = arrayOf( READ_PHONE_STATE, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE )
    }
}

其他教程

RxHttp详细使用教程

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].