实战编程·使用SwiftUI从0到1完成一款iOS笔记App(一)(1)

简介: 实战编程·使用SwiftUI从0到1完成一款iOS笔记App(一)

实战编程·使用SwiftUI从0到1完成一款iOS笔记App(一)


项目起源

前段时间稀土掘金客户端上线了“闪念笔记”功能,作为尝鲜一族便稍微体验了一下。

闪念笔记界面简约操作容易上手,相比较印象笔记、有道云笔记等综合型笔记应用,当前闪念笔记当前专注于笔记本身,只作为一种知识储备的记录工具。

深入研究后发现了点意外之喜,以稀土掘金流量口结合的闪念笔记,与Web端应用、浏览器剪藏插件相融合可以构成闭环产品生态体系。

不难猜想,在笔记工具功能完善和使用率覆盖一定市场份额后,必将正式打造移动端和桌面版应用,切入笔记类工具领域杀出一条血路。

当然,以上仅仅只是猜想。

进入正题,本章我们来搭建第一个SwiftUI实战项目,从0到1完成一款iOS笔记App。

需求分析

一款最小MVP的笔记App是怎样的呢?及时记录自己的想法、念头,搜索自己曾经记录的笔记,这是一款笔记最基本的功能需求点。

我们先梳理产品架构图,如下图所示:

image.png

一款最简单的笔记软件,包含2个核心页面:

  • 首页界面:展示笔记列表、新建笔记按钮,若是做功能强化,可以加上搜索栏;
  • 新建按钮:点击按钮,打开“新建页面”弹窗,或者进入新的页面,编辑完成关闭/回到首页;

产品设计

下一步,我们来完成产品的原型设计,构建2个页面,并将产品架构中的元素信息转换为页面功能,如下图所示:

image.png

用户首次进入时,念想笔记将会展示一个空白页,空白页面由标题、缺省图、指引文字、新建笔记按钮组成,主要引导用户进行主要功能的使用。

当用户点击新建笔记按钮时,唤起“新建笔记”弹窗页面,弹窗页面相比较进入一个新的页面,用户思维不会被强行打断,这是一种很好的交互。

在“新建笔记”页面中,主要操作为“返回”按钮、“完成”按钮、标题输入框、内容输入框。

用户点击“返回”按钮,则向下关闭该弹窗,并清空该页面已输入内容;

当用户点击“完成”按钮时,需要判断“标题输入框”、“内容输入框”是否有键入的文字,且符合预设的规则(文字数量等);

当满足规则时,则吐司提示保存成功,并关闭该弹窗页面,且在笔记列表中插入一条新的笔记。若不满足规则(校验标题和内容是否为空),则吐司冒泡提示相关信息(标题不能为空、内容不能为空)。

为更好地指引用户填写,标题输入框需要有提示文字,当文字键入时,清空提示文字,内容输入框同理。

对于搜索功能,核心点在于根据内容关键字进行搜索,并实时进行反馈。当然通常由于性能问题,会考虑输入后点击“搜索”触发搜索功能的交互方式。

以上就是简单的需求文档的撰写。

UI设计

下面我们使用AdobeXD根据产品原型图绘制UI设计稿,UI设计稿需要包含所有的页面及其交互动作,如下图所示:

image.png

UI设计需要根据产品原型的元素和内容,结合当前市场上的常用交互逻辑和设计规范,输出高保真的设计稿。其中包含各项元素组件的尺寸规范、文字规范、交互规范等,旨在为前端开发人员提供很好的样式开发指引

UI设计师和产品经理的分工常常是产品经理提供产品原型DemoUI设计师确定产品的主体风格和设计规范,输出UI设计稿,再与产品经理或者与业务团队进行评审,通过后方可进行切图,移交给下一流程。

UI设计稿最为App最终呈现的效果产物,前端工程师需要根据UI设计稿达到一比一还原,后期也可以与UI设计稿进行对比进行App样式验收。

在这里科普一个概念,切图。

切图是UI设计师将已经完成好的静态页面中的元素使用工具进行切分,与静态页面分离,示例:图标按钮、插图。UI设计师将这些需要在实际开发过程中需要导入使用的素材从静态页面上“切”下来,便可以在下面的协同工具中导出不同尺寸的图片进行使用。

UI设计师切好图后,需要再借助一个工具交付给前端设计师,这里推荐的工具是PxCook像素大厨

安装完成,AdobeXD将会安装对应的插件,选择文件 > 导出 > PxCook。如下图所示:

image.png

PxCook将会被唤起,并创建一个新项目,输入“念头笔记”,选择类型为iOS,点击“创建本地项目”,如下图所示:

image.png

选择导入画板,PxCook会自动勾选由AdobeXD导出的所有面板,我们保持全选状态,点击“导入”,如下图所示:

image.png

如此,我们便将AdobeXD中的UI设计稿导入到PxCook中了。

在PxCook中,我们可以看到UI设计稿设计的元素的尺寸、元素之间的相对距离,方便于开发者根据UI设计稿进行前端静态页面的开发工作,如下图所示:

image.png


相关文章
|
3月前
|
开发框架 数据可视化 Java
iOS开发-SwiftUI简介
iOS开发-SwiftUI简介
|
15天前
|
传感器 iOS开发 UED
探索iOS生态系统:从App Store优化到用户体验提升
本文旨在深入探讨iOS生态系统的多个方面,特别是如何通过App Store优化(ASO)和改进用户体验来提升应用的市场表现。不同于常规摘要仅概述文章内容的方式,我们将直接进入主题,首先介绍ASO的重要性及其对开发者的意义;接着分析当前iOS平台上用户行为的变化趋势以及这些变化如何影响应用程序的设计思路;最后提出几点实用建议帮助开发者更好地适应市场环境,增强自身竞争力。
|
21天前
|
JSON JavaScript 前端开发
harmony-chatroom 自研纯血鸿蒙OS Next 5.0聊天APP实战案例
HarmonyOS-Chat是一个基于纯血鸿蒙OS Next5.0 API12实战开发的聊天应用程序。这个项目使用了ArkUI和ArkTS技术栈,实现了类似微信的消息UI布局、输入框光标处插入文字、emoji表情图片/GIF动图、图片预览、红包、语音/位置UI、长按语音面板等功能。
43 2
|
24天前
|
iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第39天】在苹果的生态系统中,SwiftUI框架以其声明式语法和易用性成为开发者的新宠。本文将深入SwiftUI的核心概念,通过实际案例展示如何利用这一框架快速构建用户界面,并探讨其对iOS应用开发流程的影响。
|
1月前
|
监控 算法 iOS开发
深入探索iOS函数调用栈:符号化与性能调优实战
在iOS开发中,理解函数调用栈对于性能调优和问题排查至关重要。函数调用栈记录了程序执行过程中的函数调用顺序,通过分析调用栈,我们可以识别性能瓶颈和潜在的代码问题。本文将分享iOS函数调用栈的基本概念、符号化过程以及如何利用调用栈进行性能调优。
35 2
|
2月前
|
Swift iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】在苹果生态系统中,SwiftUI的引入无疑为iOS应用开发带来了革命性的变化。本文将通过深入浅出的方式,带领读者了解SwiftUI的基本概念、核心优势以及如何在实际项目中运用这一框架。我们将从一个简单的例子开始,逐步深入到更复杂的应用场景,让初学者能够快速上手,同时也为有经验的开发者提供一些深度使用的技巧和策略。
50 1
|
2月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
409 0
|
3月前
|
iOS开发 开发者 UED
探索iOS应用开发中的SwiftUI框架
【9月更文挑战第26天】 在iOS开发的海洋中,SwiftUI犹如一艘现代的快艇,引领着开发者们驶向更加高效与直观的编程体验。本文将带你领略SwiftUI的魅力,从其设计理念到实际应用,我们将一步步揭开它如何简化界面构建过程的面纱。通过对比传统方式,你将看到SwiftUI如何让代码变得像诗一样优美,同时保持强大的功能性和灵活性。准备好让你的iOS开发技能加速升级,一起驾驭这股新潮流吧!
|
3月前
|
前端开发 iOS开发 开发者
探索iOS开发中的SwiftUI框架
【9月更文挑战第21天】在iOS应用开发的广阔天地中,SwiftUI框架如一股清新之风,为开发者带来了声明式语法的便捷与高效。本文将深入探讨SwiftUI的核心概念、布局方式及数据绑定机制,同时通过实例演示如何运用SwiftUI构建用户界面,旨在引领读者领略SwiftUI的魅力,并激发其对iOS开发新趋势的思考与实践。
46 6
APP 编程指南
1. APP编程指南 (一) —— 基本概览(一)2. APP编程指南 (二) —— 应用程序必须实现的行为(一)3. APP编程指南 (三) —— 应用程序的后台执行(一)4.
683 0