Skip to content

SwiftUI开发初探

Published: at 03:20 PM

最近项目

iamStephenFang/KnowledgeGraph

哪些优点

指令式编程 VS 声明式编程

指令式编程逐条指示计算机怎么做,注重于描述过程

声明式编程教会计算机做什么,注重于描述结果

声明式UI

1.View并不负责渲染,并非传统意义的视图层级,而是对视图组织关系的声明

2.决定 UI 状态的状态 State 存储在对象之中

3.View = func(State)通过控制和改变 State来得到确定的 View

4.State 改变时调用上述函数获取新的 State 的 View,重新渲染更改部分

开发体验

其他特性

哪些缺点

兼容性

组件开发

表面上 SwiftUI 集成了很多可用的组件,但在实现自定义组件时还是需要自行编写元组件相关的代码,并且目前三方组件库可选择的项目较少。

原生组件可供更改的样式极其有限,有时候一些问题的解决方案代码并不优雅,比如导航栏只能手动隐藏、全屏状态下无法展示Modal、List 的分割线无法移除等等。

var body: some View {
        NavigationView{
            ZStack {
                Color("Background").ignoresSafeArea()
                VStack{
                    TopNavView(navDesc: “总览")
                        .padding(.horizontal)
                        .padding(.top, 0)
                    
                    VStack{}
	      / *** 省略内容 ***/
                .navigationTitle("")
                .navigationBarHidden(true)
            }
        }
    }

组件缺失

开发体验问题

最后总结

参考链接

  1. https://designcode.io/swiftui2-course
  2. https://www.raywenderlich.com/19611194-multiplatform-app-tutorial-swiftui-and-xcode-12
  3. https://www.fivestars.blog/articles/custom-view-styles/
  4. https://objccn.io/products/functional-swift/
  5. https://objccn.io/products/swift-ui
  6. https://www.fivestars.blog/articles/swiftui-hud/