Coding01

Coding 点滴

0%

对标 Widget

主要对标天气的 Widget 如下图所示:

7561606730867_.pic

参考内容主要有:

  1. 所在位置:裕华区
  2. 当前温度:1 摄氏度,实况温度,默认单位:摄氏度
  3. 实况风向和实况风力等级:东北风 1 级,
  4. 实况相对湿度,百分比数值
  5. 实况天气状况的文字描述,包括阴晴雨雪等天气状态的描述
  6. 实况观测时间
  7. 实时空气质量指数和实时空气质量指数级别
  8. 未来三天的天气预报

整个 widget 主要分成左右结构,左边结构采用上中下三层布局,右边结构采用列表形式展示未来几天天气预报内容。

天气 API

本文结合国内外一些好的天气接口提供商,最后选择使用和风天气开发平台

主要是其提供的「开发者方案」完全符合我们这种目前处于自学和少用户量的开发者,特别的友好,并且对于「认证个人开发者」提供的 API 日访问量 (16700 次/天) 足够使用了,而且如果是集成官方 SDK,访问量是无限制的。

注:本文是开发 Widget,和风天气提供的 iOS SDK 是基于 OC 的,个人想还是纯 Swift 开发,且不想 APP 包过大,所以本文当前采用 API 接口形式。

Read more »

我们发现 iOS 自带的「股市」小组件有时候更新数据有问题,主要是因为使用雅虎的股票接口,在国内网络等因素,老出现拿不到数据。

所以今天我们根据这一情况,自己尝试使用国内一些主流股票接口,重新模仿写一个相似的股市小组件。

数据接口

由于国内一些类似百度智能云阿里云等都提供股票接口服务,所以我在选择其中几家性价比实惠的,自己封装成一个统一接口。

Read more »

在之前的写货币兑换的小组件文章中,我们采用 Enum 静态的方式写入我们的货币选择,今天我们改用动态的,一方面是学习如何通过代码的形式动态修改选项,另一方面是为了之后扩展需要,将选项放到接口中实时动态调整。

Enum && Type

Enum

简单的理解就是 Enums 是写死在 .intentdefinition 文件中的静态配置,只有发版才可以更新。

Type
Types 就灵活多了,可以在运行时动态的生成,一般而言我们使用 Types 来做自定义选项。

Read more »

这是我的第二个小组件,有关健康数据的获取和展示,今天我以「睡眠」时间为例。

设置权限

iOS 提供了 HealthKit 包,专门用于获取健康数据,在我的自我量化文章中有提到。

首先需要将 HealthKit 权限打开。

在 Info 中,加入获取健康权限的说明:

Read more »

有了「汇率转换工具」基本功能,我们还需要能自定义参数,配置任意两种货币之间的转换。

这里就需要 widgets 用户配置了。

widget 用户配置界面不需要手动编写,只要添加一个 SiriIntent 即可,用户只需要长按小部件后点击编辑即可配置 Widget 的数据了。

配置界面大致如下:

汇率兑换,肯定需要选择兑换的两种货币,这里就需要两个参数 from 和 to。同时,我们需要定义一个枚举 Enum,罗列常见的货币种类名称。

Read more »

Introducing WidgetKit

Easily build widgets and make them available across iOS, iPadOS, and macOS using the WidgetKit framework and the new widget API for SwiftUI. Widgets now come in multiple sizes, and users can visit the new widget gallery to search, preview sizes, and place them anywhere on the Home screen to access important details at a glance. They can also add Smart Stacks — sets of widgets that use on-device intelligence to surface the right widget at the right moment, based on factors like time, location, and activity.

文字和图片来自 Introducing WidgetKit

在项目中 File->New->Target 添加 Target:

Read more »

引用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import matplotlib.pyplot as plt
from typing import Dict, Text

import numpy as np
import tensorflow as tf

import tensorflow_datasets as tfds
import tensorflow_recommenders as tfrs
import os
import ssl

os.environ['HTTP_PROXY'] = 'http://0.0.0.0:8888'
os.environ['HTTPS_PROXY'] = 'http://0.0.0.0:8888'
ssl._create_default_https_context = ssl._create_unverified_context
Read more »

最近看了新书《简明的Tensoflow 2》,准备配置一个测试开发环境。

本文主要是使用 JupyterLab,可以用 conda 或者 pip 方式安装。

1
2
3
4
5
// conda 方式
conda install -c conda-forge jupyterlab

// or pip 方式
pip install jupyterlab

conda 源更新比较缓慢,推荐还是用 pip。

Read more »