Decaf:追踪每日咖啡摄入和咖啡因消耗的iOS应用





项目名称:Decaf

概述

Decaf是一个旨在帮助用户追踪他们每日咖啡摄入和监控咖啡因消耗的iOS应用。用户可以记录每天饮用的咖啡类型和咖啡因摄入量,应用还提供了一个功能来检查用户是否超过了推荐的每日400mg咖啡因摄入量。

开发周期

  • 开发周期:2023年1月30日至2023年2月24日(Apple Foundation Program)

功能更新

  • 版本1.0.0:原型(2023年2月24日)

  • 版本1.0.1:代码重构(进行中)

开发环境

  • 语言:Swift 5.6

  • iOS部署目标:14.0

  • Xcode:14.2

技术栈

  • UIKit

  • SwiftUI

  • MVVM架构

  • Combine

  • 使用Github进行协作

使用的库

  • Realm

  • Lottie

隐私政策

技术挑战

  1. Lottie动画

    • 在开发Decaf时,我们集成了Lottie动画来创建一个引人入胜且视觉上吸引人的OnBoardingView。这种方法允许我们无缝地展示动画内容,通过提供动态和互动的介绍来增强用户体验。

struct LottieView: UIViewRepresentable {
    
    typealias UIViewType = UIView
    var filename: String

    func makeUIView(context: UIViewRepresentableContext<LottieView>) -> UIView {
        let view = UIView(frame: .zero)
        let animationView = LottieAnimationView()
        animationView.animation = LottieAnimation.named(filename)
  
        animationView.contentMode = .scaleAspectFit
        animationView.loopMode = .loop
        animationView.play()
        
        animationView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(animationView)
        
        NSLayoutConstraint.activate([
            animationView.widthAnchor.constraint(equalTo: view.widthAnchor),
            animationView.heightAnchor.constraint(equalTo: view.heightAnchor)
        ])
        
        return view
    }
    func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<LottieView>) {
        
    }
    
}
  1. OnBoarding

    • 在Decaf中,我们使用AppStorage来管理OnBoarding过程,通过存储用户的OnBoarding状态。这确保了OnBoardingView只在用户首次打开应用时显示。一旦用户通过点击按钮完成OnBoarding,应用将记住这个选择,并在后续启动时跳过OnBoarding屏幕。AppStorage提供了一个简单有效的的方式来持久化这个偏好,通过防止OnBoarding视图在每次打开应用时重复出现,提供了更平滑的用户体验。

@main
struct DecaffeineApp: App {
    @AppStorage("isOnboarding") var isOnboarding : Bool = true
    
    var body: some Scene {
        WindowGroup {
            if isOnboarding == true {
                OnBoardingView()
            } else {
                ContentView()
                    .environmentObject(ShareDataViewModel())
            }
        }
    }
}

struct OnBoardingView: View {
    //MARK: - PROPERTIES
    @AppStorage("isOnboarding") var isOnboarding : Bool?
}

或许喜欢

Clima:基于SwiftUI的iOS天气应用,展示天气与空气质量数据

Clima是一个使用SwiftUI开发的iOS天气应用,提供天气和空气质量信息,支持动态数据展示和图表,使用OpenWeatherMap API。

最近更新 2024-12-09

AnimateText:SwiftUI文本动画库支持iOS/macOS

AnimateText是一个用于SwiftUI的文本动画库,支持iOS和macOS平台,允许开发者创建自定义动画效果,增加应用的动态交互体验。

最近更新 2024-12-09

SwiftUIPager:SwiftUI原生组件构建的分页器

SwiftUIPager是一个用SwiftUI构建的分页器组件,支持垂直和水平分页,视图回收,自定义UI和动画效果,适用于iOS和macOS应用。

最近更新 2024-12-10

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1