推送通知利器:Poes

推送通知利器:Poes

PoesA Swift command-line tool to easily send push notifications to the iOS simulator项目地址:https://gitcode.com/gh_mirrors/po/Poes

Poes Logo

在iOS开发中,测试推送通知往往是一项繁琐的工作,特别是在模拟器上。然而,现在有了一个名为"Poes"的开源工具,它将这个过程简化到了极致。

项目介绍

Poes是一款用Swift编写的命令行工具,专门用于向iOS模拟器发送推送通知。通过简单的命令行操作,你可以轻松创建JSON负载,并直接将推送消息送达指定应用。这款工具非常适合开发者进行快速验证和调试推送功能。

项目技术分析

Poes基于Swift 5.1构建,利用Swift包管理器(Swift Package Manager)进行构建和分发。项目结构中包含了PoesCore框架,这样的设计使得未来可能的图形界面版本开发变得更加便捷。此外,Poes还支持通过Mint进行安装,使得部署更为简单。

项目及技术应用场景

无论你是新手还是经验丰富的iOS开发者,Poes都能成为你的得力助手:

  • 快速测试:无需真机设备,只需在模拟器上运行目标应用,即可通过Poes发送推送,实时查看效果。
  • 教学演示:在教授或学习推送通知相关课程时,Poes能让你迅速展示并解释推送机制。
  • 敏捷开发:在迭代开发过程中,频繁地测试推送功能,Poes可以提高你的工作效率。

项目特点

  • 简洁易用:简单的命令行接口,输入几个参数即可完成推送任务。
  • 默认设置:所有选项都有默认值,如标题和正文,你可以选择自定义或者使用预设值。
  • 可扩展性:由于采用了框架化的设计,未来的功能拓展和UI版面升级易于实现。
  • 兼容性:要求Xcode 11.4 beta 1及以上版本,确保与最新开发环境兼容。

安装与使用

Poes可通过Mint一键安装:

$ mint install AvdLee/Poes

使用也相当直观:

$ poes send com.wetransfer.app --verbose

更多资源

作者还提供了详细的博客文章,深入浅出地讲解了如何在iOS模拟器上测试推送通知,以及如何创建Swift Package Manager框架。

综上所述,Poes是每个iOS开发者工具箱中的必备神器,它不仅使推送通知的测试变得轻松,而且提高了开发效率。快来试试看,让Poes成为你工作流程中的新伙伴吧!

PoesA Swift command-line tool to easily send push notifications to the iOS simulator项目地址:https://gitcode.com/gh_mirrors/po/Poes

for (int camera_index = 0; camera_index < this->m_safe_camera_list.size(); ++camera_index) { camera* cam = &(this->m_safe_camera_list[camera_index]); if (cam->m_is_exter_calib_check_mark == true) { // as a Internal reference K of the camera, the K-1 is : // 1/ax 0 -px/ax // 0 1/ay -py/ay // 0 0 1 Eigen::Matrix3f invk; invk.setIdentity(); invk(0, 0) = 1.0 / cam->m_inter_calib(0, 0); invk(0, 2) = -1.0 * cam->m_inter_calib(0, 2) / cam->m_inter_calib(0, 0); invk(1, 1) = 1.0 / cam->m_inter_calib(1, 1); invk(1, 2) = -1.0 * cam->m_inter_calib(1, 2) / cam->m_inter_calib(1, 1); Eigen::Vector3f tmp_t_verts = cam->m_exter_calib.topRightCorner(3, 1); Eigen::Matrix3f tmp_inv_r_mat= cam->m_exter_calib.topLeftCorner(3, 3).transpose(); Eigen::Vector3f tmp_root_point = -tmp_inv_r_mat * tmp_t_verts; for (int pose_index = 0; pose_index < cam->m_2D_pose_list.size(); ++pose_index) { Eigen::MatrixXf pose = cam->m_2D_pose_list[pose_index]; // check the pose's Confidence, if all the joints's confidiance is smaller than the gain, drop out float confidence = pose.row(2).maxCoeff(); if (confidence < this->m_joint_confidence_gian) { continue; }; my_radials tmpradials; tmpradials.m_2d_pose = pose; tmpradials.m_root_point = tmp_root_point; tmpradials.m_radials_points = (invk * pose.topRows(2).colwise().homogeneous()).colwise().normalized(); tmpradials.m_radials_points = tmp_inv_r_mat * tmpradials.m_radials_points; tmpradials.m_3d_pose_ID = -1; tmpradials.m_camera_index = camera_index; tmpradials.m_poes_index = pose_index; tmpradials.m_pose_confidence = pose.row(2).leftCols(7).sum(); this->m_3d_radials.push_back(tmpradials); } } }
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

井队湛Heath

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值