¿Qué tan rápido puedes escribir una aplicación con Compose?

Este artículo fue escrito a principios de marzo de 2023, porque el proceso de revisión y lanzamiento ha durado casi dos meses, jeje~

Después de descansar durante más de medio año, estoy pensando e intentando cómo continuar con mi carrera después de este año. De hecho, en el resumen de fin de año del año pasado, he mencionado varias de mis direcciones.

Mi dirección inicial fue ingresar a la industria del cuidado de la salud. Aunque tengo tecnología y habilidades médicas, no tengo clientes, por lo que probablemente necesite mucho tiempo para acumular clientes, y ahora los clientes están obsesionados con el masaje que relaja los músculos, así como gastos de alquiler como equipo. Es mejor buscar una pequeña empresa para trabajar cómodamente. Pero no podía soportar tirar mi corazón.

Así que lo comencé PlanBy me fui al campo del aprendizaje del conocimiento de la medicina china. Aunque hay algunos de este tipo en el mercado app, no están dirigidos por personas que realmente tienen conocimiento de la medicina china. Solo se puede decir que es un simple agregación de un montón de recursos, o para vender cursos y existir. Pero no sé cuáles son los puntos débiles de aprender medicina china y cómo mejorar realmente las habilidades médicas. Este es mi mercado. Así que hice uno desde cero app, y la primera versión ya está completa. Realmente se trata de apphacer lo propio. Aunque hay pocas funciones y datos en la actualidad, creo que es valioso, aunque puede que no haya dinero.

aa1.png

AppSe ha puesto en el sitio web oficial villa.qhplus.cn , Huawei, Xiaomi, Yongyongbao y el mercado de aplicaciones de Oppo, pero para el desarrollo, no entiendo el contenido y la estructura Appde . Después de todo, no está diseñado para ti. , pero puedes Experimentar lo suave como la seda que Composeya . Porque todo esto appestá Composedesarrollado con . Desde el comienzo del proyecto hasta el presente, solo tomó alrededor de un mes y medio completar el desarrollo. Es hora de que experimente la velocidad del Composedesarrollo . Agradezco primero la cantidad de borradores de diseño (Gracias a mi hermosa esposa).

aa2.png

Y lo que hago es desarrollo full-stack, que incluye:

  1. Piense en la forma del producto
  2. rustEscribir servicios backend con
  3. Rastreo, limpieza y almacenamiento de datos
  4. Úselo para vue3escribir interfaces H5, como el sitio web oficial y el acuerdo de privacidad
  5. Para poner en los estantes, iniciar sesión, empujar, etc., debe abrir una empresa fantasma y ejecutar varios procesos (el trabajo más tedioso y lento)

Incluso en appel lado del servidor , hay varias lógicas de datos, informes, almacenamiento y otras lógicas. ¿Es concebible UIcuánto tiempo se puede asignar para escribir?

Por supuesto, esto también se debe a la biblioteca emode componentes , lo que aceleró enormemente el desarrollo de la capa empresarial.

FlutterP: ¿Por qué no considerar el desarrollo, desarrollo y desarrollo de programas pequeños RN?

Respuesta: El programa pequeño es bueno, pero es muy cerrado. Quiero realizar funciones como widgets de escritorio, y el programa pequeño puede hacerlo por completo. Pero para las disposiciones de la medicina tradicional china, el uso de componentes pequeños nos permite recordar un artículo todos los días es un problema Una característica que personalmente me gusta.

Y el rendimiento RNde es demasiado pobre, y al usarlo, es necesario sacrificar varias escenas, como la animación y el diseño complejo. Y, a menudo, estas escenas que necesitan interactuar con el nativo, requieren diez veces más esfuerzo para resolverlas.

No Flutter, primero porque no sé cómo hacerlo, y segundo porque RNson las dos UIcapas, si lo consideras junto con la capa de datos, no es tan simple. Y lo uso Compose, que está conectado a toda Androidla ecología , por lo que el rendimiento es alto y la velocidad de desarrollo es rápida. ¿Por qué no hacerlo? multiplataforma? Simplemente escríbalos por separado y no entre más en el hoyo multiplataforma general. Los escollos de la plataforma cruzada no son solo los escollos de la abstracción técnica para hacer frente a la inestabilidad de su respectiva ecología, sino también los escollos de la coordinación de recursos humanos. Siempre será agotador.

Echemos un vistazo Composea emoalgunos puntos interesantes aportados por el desarrollo colaborativo con y:

gestión de interfaz

ComposeEs muy simple usar schemeel método de agregar enrutamiento para manejar los saltos y exposiciones de la interfaz. Cada nueva interfaz es una Composable, y @ComposeSchemese agregar

@ComposeScheme(
    action = SchemeConst.ACTION_THINK_DETAIL,
    alternativeHosts = [HolderActivity::class]
)
@SchemeLongArg(name = SchemeConst.ARG_ID)
@SchemeLongArg(name = SchemeConst.ARG_COMMENT_ID)
@Composable
fun ThinkDetailPage(navBackStackEntry: NavBackStackEntry) {
    LogicPage(navBackStackEntry = navBackStackEntry) {
       // content
    }
}

@Composable
fun LogicPage(
    navBackStackEntry: NavBackStackEntry,
    saveToLatest: Boolean = false, 
    content: @Composable () -> Unit
) {
    content()
    LaunchedEffect(navBackStackEntry) {
        val scheme = navBackStackEntry.arguments?.getString(SchemeKeys.KEY_ORIGIN)?.let { Uri.decode(it) }
        if (scheme != null) {
            // 上报 scheme,作为曝光
            // 保存 scheme,如果用户退出了,直接重入这个界面。 
            // 这个在调试中很好用。例如某个界面,需要点5层才能进去,每次编译重启就要点5次才能看到这个界面,那就蛋疼了,所以如果每次把它记录起来,启动就进去,那开发就顺很多了
        }
    }
}
复制代码

estado de la interfaz

很多界面基本上就是列表,然后就有空界面、错误提示情况,列表,列表可能还有加载更多。在原来 View 体系,就要做各种 View 的显示隐藏操作,写起来贼麻烦。 用 Compose 封装起来就简单了。 看我的封装结果

val logic by vm.thinkFlow.collectAsStateWithLifecycle()
LogicBox(
    modifier = Modifier
        .fillMaxWidth()
        .weight(1f),
    logic = { logic },
    reload = {
        vm.reload()
    },
    emptyText = "空"
) { list ->
    // 列表数据
}
复制代码

把它往 LogicPage 里面套就完事了,当然这也是数据逻辑层我抽象了强大的 logic 逻辑。借助这个逻辑,可以分分钟完成数据的从网络数据拉取,再到读存 DB,再到界面的渲染,可以快速补充完成空界面、加载出错、加载更多、下拉刷新等功能。

多级评论

aa3.jpg

看我这个思辨详情页面,假设以旧的 RecyclerView 体系来做这个,想想都痛苦。而我是数据逻辑层加UI一起两三个小时搞定, 毫无 bug

另外这里还有一个“从通知点击进来滚动到当前评论”的场景,如果是原生或者 RN 来做,最痛苦的事情就是滚动时机了,一般最终会使用 post 万能大法大法,然而总有没滚动的情况发生,然后产品就找过来了。

Compose 也就是一小段代码的事了:

if (vm.targetCommentId > 0) {
    val targetCommentIndex = remember(vo) {
        indexOfTargetCommentId(vo, vm.targetCommentId)
    }
    if (targetCommentIndex > 0) {
        LaunchedEffect(Unit) {
            vm.listState.scrollToItem(targetCommentIndex, 0)
        }
    }
}
复制代码

嵌套滚动

看看这个一般的嵌套滚动界面

aa4.gif

即使有 NestedScroll 或者 CoordinatorLayout,但新手用不懂,高手也容易遗忘某些配置而踩坑。

那么 Compose 需要多少代码呢?

val nestedScrollConnection = remember {
    object : NestedScrollConnection {
        override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {
            if (available.y < 0 && vm.scrollState.canScrollForward) {
                scope.launch {
                    vm.scrollState.scrollBy(-available.y)
                }
                return available
            }
            return super.onPreScroll(available, source)
        }
    }
}
Column(
    modifier = Modifier
        .fillMaxSize()
        .verticalScroll(vm.scrollState)
        .nestedScroll(nestedScrollConnection)
) {
    BookInfoBasic(info)
    BookInfoPageTabSegment(vm = vm)
    HorizontalPager(...)
}
复制代码

这样就完成整个界面了,其实也是对 nestedScroll 的封装,道理和 View 体系一样,只是用起来更方便了。

ChatGPT

ChatGPT 对于 Compose 而言,很不好,毕竟其训练依赖的是旧版本,所以会有很多错误,所以不能用的,但是它在逻辑层面就很好用了,例如文件上传、下载等,我都是让它写,写完自己校验下,就完工了。为了赶时髦,我当然也在 app 里接入了 ChatGPT,当然,我做了配置,目前对外不开放。

aa5.jpg

漫长的审核

正如文章开始所说,开发我用了一个多月,但是后面的审核上线则是用了两个月左右,其实说到底还是对规则的不熟悉。在电子版权、安全评估报告等环节都是在处理一份之后才知道必须要另一个,所以化并行为串行了。并且做安全评估,给我的感觉就是我的 app 分分钟有上百万的日活,实际上整个圈子可能不过数万人,但我也得完成相应的功能,例如接入飞书机器人,在飞书群里完成内容审核功能。

所以这两个月,最多的就是认识到了整个市场,在公司注册、记账、上架等各个环节衍生的无数商业行为,很多都是收智商税和信息差赚差价的。所以中国有商业头脑的人还是很多,在各个小环节拉拢豪绅、巧立名目,只要有信息差,我就可以无限拉高价格。因为也铸就了现在创业那高不可攀的围墙。

当然,我已经进到墙内了,如果能够成功,那这个墙就是对我的保护了,毕竟干的又不是 ChatGpt 那种无法轻易复制的产品,所以这堵高墙就可以为我争取更多的成长时间了。

在这两个月,我打造了另一款产品:emo-ai。最主要的功能就是 ChatGpt 的代理,目前维护了一个小用户群体,收到了第一桶小金。

此外,我也了解了下 StableDiffusion,本地搭建了 StableDiffusionWebUi 的环境,了解它的 prompt 玩法、 controlnetlora 之类的知识。绘图入魔怔~

aa6.jpg

最后

ChatGPTLa explosión de , permite que la gente vea el poder AIde , y el desarrollo, diseño, redacción y otros campos están a punto de ser reemplazados. Aunque el campo de la medicina tradicional china no se ha visto afectado en absoluto, lo he mencionado antes:

**Tratamiento = recomendar [medicamentos correspondientes] basado en [síntomas/indicadores actuales]

Por lo tanto, la esencia de la medicina es un sistema de recomendación. La medicina occidental enfatiza el tratamiento dirigido, mientras que la medicina china usa Yin-Yang y los Cinco Elementos para construir un modelo enorme. Desde esta perspectiva, la medicina china es obviamente mejor.

Pero en la era de las redes neuronales profundas, es obvio que podemos entrenar modelos con parámetros más grandes para completar el proceso de tratamiento dialéctico.

Pero el entrenamiento del modelo requiere el apoyo de datos y el establecimiento del modelo.

En términos de datos, la medicina china tiene miles de años de acumulación de datos, que es el recurso más grande y completo del mundo, pero necesita ser integrado y estructurado.

Lo más importante del modelo es ¿cuál es la estructura del modelo? ¿Cómo definir la función de pérdida y el optimizador? Después de un largo período de estudio, ya tengo algunas ideas, que también son mis conocimientos únicos sobre la integración entre campos.

Pero los datos actuales aún no están estructurados, GPUni puedo pagarlos, por lo que aún queda mucho camino por recorrer, y también es el sueño que Qihuang Xiaozhu quiere llevar.

Si tienes un sueño, también debes tener los pies en la tierra, porque lo que estoy haciendo ahora es más difícil. Quiero dividir los libros uno por uno, guardarlos como datos estructurados y hacer enlaces al contenido. El uso de la tecnología solo puede obtener resultados vagos y, finalmente, tengo que corregirlos yo mismo. El fondo de gestión del sistema de entrada aún está en construcción.

Entonces, soplarlo al final Composeme ahorró mucho tiempo. En Viewla era de , dado que hay muy pocas personas a las queUI les gusta escribir y pueden escribir , probablemente pueda reemplazar a 6 desarrolladores de negocios a la vez, así que con la bendición de , quizás no sea un gran problema reemplazar a 60 desarrolladores de negocios.UICompose

Supongo que te gusta

Origin juejin.im/post/7229539262911381563
Recomendado
Clasificación