其他分享
首页 > 其他分享> > 菜鸟大学生的ios移动开发实战

菜鸟大学生的ios移动开发实战

作者:互联网

iOS开发实战–快跑

一. 写在前面

笔者目前大二软件工程在读,之前只做过javaee的web系统大作业,对iOS开发可以说是一点不懂。但是和老师同学们吹下牛了,暑假要做个跑步app,先替代校园跑,然后深挖游戏性,研究算法申请专利做互联网+。
用的语言是swift,没有使用swiftui,使用swiftui的可以参考这个视频
https://live.csdn.net/v/141526
这是去年提出的想法,现在更新了更完善和成熟的商业模式
这是进度计划表

二.代码实现

首先是尝试接入高德的sdk,利用高德的sdk可以实现对运动检测的相关功能,并且高德官方也提供相应的demo,仿照着学习https://lbs.amap.com网站在这。
官方的文档写的蛮详细了。我选择的是自动部署,在终端输入这些,命令
cd /xxxxxxx/xxx/xxx/xxx.codeproj可以直接把工程文件拖进来,cd …后pod init 生成podfile文件,open …打开文件夹
在这里插入图片描述
在podfile里写入要导入的包,我导入的是2dmap和location在这里插入图片描述
然后cmd+S保存后终端输入,pod update,这里要注意podfile里的pod首字母不要大写。

包导入成功后回到Xcode,在info.plist中配置权限在这里插入图片描述
这个配置完后才会弹窗说请求定位这些。
从这里开始就与swiftui不一样了。
要创建桥接文件,file->new->file选择iOS,Header file。我的命名是RunDemo_Bridge.h
创建完后点击蓝蓝的那个工程文件targets->build Settings下搜索bridg会看到这个在这里插入图片描述

注意看objective那一栏,双击输入$(SRCROOT)/(你设置的桥接文件的名字).h

保存后在这个文件里导入头文件,这里和高德的文档一样在这里插入图片描述
这里可以测试一下

ViewController.swift

import UIKit

class ViewController: UIViewController, MAMapViewDelegate {

    override func viewDidLoad() {
            super.viewDidLoad()
        
        let mapView = MAMapView(frame: self.view.bounds)
        mapView.delegate = self
        self.view.addSubview(mapView)
        }

}

这是修改后的AppDelegate.swift文件

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        
        AMapServices.shared().apiKey = "你申请的Key"
        
        return true
    }

这样配置好后是可以在模拟器上看到地图了,如果要实机测试的话,可能会出现问题在这里插入图片描述
这个问题
这是因为你的Bundle Identifier不是唯一的,你可以试着脸滚键盘输些乱码看看能不能部署到手机
在这里插入图片描述
当出现这个问题的时候,回到targets,general里面
在这里插入图片描述
我这里已经删掉了。

三. 写在最后

第一次尝试写这种贴代码的博客,很不成熟,很多报错应该及时复制下来,方便大家查bug检索。
一起进步叭,路漫漫其修远兮,吾将上下而求索
定位自己的位置下回补上,其实已经实现了在我手机中,但是那个项目是swiftui的,晚上考虑到swiftui或许还不够成熟,之后项目做大了可能支持不来,就先重构了。说实话swiftui我真的爱了,那体验可以说是低代码开发的雏形,就像游戏引擎一样,不过现在还是让它再飞一会,之后或许会拿出来做些小项目。

标签:实战,文件,菜鸟,ios,podfile,application,导入,swiftui,高德
来源: https://blog.csdn.net/pickle____/article/details/118344507