iOS学小程序从0到发布(适合iOS开发看)

Emmmm,最近一波失业潮。富某康、某团、摩某、京某、知某、某浪、58 某大面积裁员,那么在这个千钧一发之际,单纯iOS开发也着实不好过,回过头看一下,裁掉的都是单一选手,为了节约成本公司留下的都是身兼多职的全栈开发工程师。

那么iOS, 有些选手就要找对方向再学一手以备下次被裁员的不是自己。HTML,CSS, JS,小程序,React, React Native浮现在选手面前。 好,进入正题,今天开始从0入门小程序。咦,等等,为什么叫选手呢,因为当前环境下经济不景气都是去竞争口饭吃的,就像是在比赛,故本文称之为选手。

首先,学习小程序开发对于学习iOS开发成本实在是低,低到什么程度呢?低到你单看这篇文章就可以开发并发布小程序。

一:小程序注册

注册小程序帐号

在微信公众平台官网首页(mp.weixin.qq.com)点击右上角的“立即注册”按钮。

关于小程序账号注册填写从相关的各位选手可以去微信公众平台自己看官方文档这里不做详细介绍https://developers.weixin.qq.com/miniprogram/introduction/index.html

image

二:这篇文章重点要介绍的是开发工具和代码方面的知识。

微信开发工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

那么现在我已经下载好了

image

点击小程序项目,进入

image

如图,我这是之前已经创建好的项目,会显示在图上右边,如果是本地没有小程序项目,则创建就可以了,相信我们的iOS开发们这些都不是事,emm不行,怕有些 人还是不会,老规矩上图

image

好,终于看到代码了,到这里才是本文接下来要讲的重点。

先来看下我们今天要实现的效果。

image

再来整体看下代码架构

image

先来看四种文件,.js, .json,.wxss,.wxml。

.js处理逻辑,数据,获取网络请求的数据即在这里面

.json 配置文件,比如tabbar的配置,navigationbar的配置等

.wxml创建的控件,比如view,button,map组件

.wxss控件的修饰,比如frame,backgroudcolor等

看到这里是不是感觉有点跟MVVM设计模式相似呀,不同功能的代码分文件来写,一目了然。

好,先看示例首页搜索页面的输入框。

.wxml里

<input class="searchPut" bindconfirm="shouldDone" placeholder="输入来搜索??" type="text" confirm-type="Search">
</input>
<view class="table">
  <view class=‘contentview‘ wx:for="{{searchResults}}" wx:for-index="bindex">
   <view class="listitem"  bindtap=‘didSelectCell‘  data-bindex=‘{{bindex}}‘>
     <image class="img" src="{{item.cover_path}}"></image>
      <view class="right">
          <view class="name">{{item.title}}</view>
          <view class="nameDes">{{item.intro}}</view>
          <view class="bottomView">
           <view class=‘playtimes‘>播放次数:{{item.play}}</view>
           <view class=‘length‘>总共:{{item.tracks}}集</view>
          </view>
      </view>
    </view>
  </view>
</view>

如图不同颜色框对应不同UI组件

image.png

.wxss

.searchPut
{
  margin-left: 20rpx;
  margin-right: 20rpx;
  height: 60rpx;
  border: 2rpx ridge black;
}

.table
{
  top: 80rpx;
  width: 100vw;
  margin-bottom: 0rpx;
}

.contentview
{
  padding: 0;
}

.listitem{
  display: flex;
  flex-direction: row;
  padding:20rpx;
}

.img
{
  width: 100rpx;
  height: 100rpx;
}

.right
{
  flex: 1;
  width: 590rpx;
  margin-left: 20rpx;
  display: flex;
  flex-direction: column;
}

.name
{
  font-size: 35rpx;
}
.nameDes
{
  font-size: 30rpx;
}

.bottomView
{
  flex: 1;
  display: flex;
  flex-direction: row;
  justify-content:space-between;
}

.playtimes
{
  font-size: 30rpx;
  color: gray;
  vertical-align: center;
}

.length
{
  font-size: 30rpx;
  color: gray;
}

1.searchPut :margin-left :距离左边, 那距离右边同理margin-right
讲下border:border: 2rpx ridge black; 代表边框宽2rpx,样式ridge,颜色黑色
2..table: width: 100vw;代表铺满宽,即100%
3..listitem: display:flex;采用flex弹性布局,flex-direction: row; 即竖向布局,即我们熟悉的tableview样式,同理flex-direction: column; 横向布局。padding:20rpx;即向里周边都缩进20rpx
4..bottomView : justify-content:space-between;justify-content 用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式。
| flex-start | 默认值。项目位于容器的开头。 | 测试 ? |
| flex-end | 项目位于容器的结尾。 | 测试 ? |
| center | 项目位于容器的中心。 | 测试 ? |
| space-between | 项目位于各行之间留有空白的容器内。 | 测试 ? |
| space-around | 项目位于各行之前、之间、之后都留有空白的容器内。 | 测试 ? |
| initial | 设置该属性为它的默认值。请参阅 initial。 | 测试 ? |
| inherit | 从父元素继承该属性。请参阅 inherit。 |
5.其他诸如:color,font-size这些不多做解释。

下面来到了.js文件有了这一步,咸鱼变活鱼,界面搭好了,就等渠里通水了。

age({

  /**
   * 页面的初始数据
   */
  data: {
    searchResults:[],

  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },
  shouldDone: function (event) {
    var searchkey = event.detail.value;
    var that = this;
    wx.request({
      url: ‘http://search.ximalaya.com/front/v1?core=all&device=iPhone&is_paid=true&live=true&page=1&paidFilter=false&rows=3&spellchecker=true&version=5.4.45&kw=‘+searchkey,
      method:"get",
      success: function (res) {
        var results = res.data.album.docs;
        console.log(results);
        for (var i in results) {
          var playtimes = results[i].play;
          var playStr = String(playtimes);
          if (playtimes > 10000)
          {
            playtimes = playtimes/10000;
            playStr = playtimes.toFixed(1)+"万";
          }
          results[i].play = playStr;
        }

        that.setData({
          searchResults: results,
        })
      }
    })
  },

  didSelectCell: function (event) {
    var that = this;
    var index = event.currentTarget.dataset.bindex;
    console.log(index);
    var list = that.data.searchResults;
    var albumID = list[index].id;
    console.log(albumID);
    wx.navigateTo({
      url: ‘index?albumId=‘ + albumID,
    })
  }
})

首先输入搜索的内容后,点击搜索,iOS里应该是有个textfieldshouldReturn,这个事件。那么小程序同理,我们之前已经在wxml里绑定过了,那就是bindconfirm="shouldDone"这行代码,bindconfirm就是这个事件,我们绑定上之后,在js文件里实现这个shouldDone方法,然后再shouldDone方法里进行网络请求去获取数据就好。

说到网络请求,微信小程序的封装那是厉害的一批,
看图

image.png

wx.request就是调网络请求,url是请求的链接,method是请求的方法get,post。
post需要传参的话下面再加个data参数传进去就好。
success就是请求成功的回调,res就是response,更神奇的是,返回数据的解析如图上:var results = res.data.album.docs; 竟然直接点语法就把json给解析了,如图所示的格式

image.png

是不是太方便了。
有了数据了,下面来处理数据,如图

image.png

播放次数,实际服务器返回的“play”这个字段播放次数是64168345,那我们要转为6416.8万,这该怎么转呢,如果是OC代码那我们就得心应手,但这里是小程序。
首先这是一个列表,每条数据里都有play这个字段,两种方案:1.就是要遍历下数组,然后把数组中的这个字段对应的值做下修改。2.直接在对控件赋值的时候做转换(也就是对应iOS里cellforrow里给控件赋值的时候)。那我们现在wxml里已经写好了,直接取的就是play这个字段的值,并没有做转换,如图

suo

所以我们现在采用第一种方法

遍历数组

image.png

那么现在数据就修改完了,要显示了

 that.setData({
          searchResults: results,
        })

这句话就是把我们得到的返回的数据赋值给我们在data里定义的searchResults

image.png

同时,wxml里绑定的searchResults,就会刷新出来界面。

image.png

到此首页搜索界面的实现介绍完毕。下班了,先回家吃饭了,饿死。回来继续

感谢各位看官!

代码地址:https://git.dev.tencent.com/cong_Wang/xcx.git
git clone 即可下载下来代码。
如图:已经下载下来了

image.png

那么怎么跑这个代码呢?我们打开微信开发工具,

image.png

点击+号,即新建项目,导入项目,选择代码的目录,选择测试号,即会为你生成一个测试appid,点击导入按钮。

image.png

大功告成,现在就可以跑项目了

原文地址:https://www.cnblogs.com/wangcongiOS/p/10325325.html

时间: 2024-10-06 11:18:45

iOS学小程序从0到发布(适合iOS开发看)的相关文章

WordPress版微信小程序2.0版本发布

利用业余时间对WordPress版微信小程序进行的升级,增加了一些功能,程序性能上做了一些优化.经过此次的版本升级,WordPress版微信小程序所需的基本功能已经具备. 开放源码地址:https://github.com/iamxjb/winxin-app-watch-life.net 本次升级主要调整和优化功能包括: 1.调整列表页的显示方式 列表页的显示,不再采用摘要方式,采用缩略图+标题的方式,比较适合在微信里浏览. 2.增加搜索 WordPress rest api 的文章搜索是全文的

仿抖音上下滑动播放视频(兼容安卓,ios,小程序,h5)

仿抖音上下滑动播放视频(兼容安卓,ios,小程序,h5) 运行条件 HBuilder X 2.2.2 安装后,从插件市场导入,即可真机运行 vue 项目地址 github https://github.com/15157757001/scroll-video uniapp插件市场 https://ext.dcloud.net.cn/plugin?id=664 说明 插件分别用swiper实现(多端兼容)和css3动画实现(暂时只支持app),可自行切换. 插件在uni-app编译模式下编写(已切

CK2020微信小程序入门与实战 常用组件API开发技巧项目实战

新年伊始,学习要趁早,点滴记录,学习就是进步! 随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了.对于学习有困难不知道如何提升自己可以加扣:1225462853  获取资料. 下载地址:https://pan.baidu.com/s/1hsU5EIS 微信小程序入门与实战 常用组件API开发技巧项目实战 小程序官方正式公告,开放了更多的入口,个人开发者可以申请

小程序倒计时60秒以及解决ios页面晃动问题(前端网备份)

1>小程序ios页面晃动问题,上下晃动是因为机子本身问题,左右问题可以解决.container{padding-bottom: 0;background-repeat: no-repeat;background-size: 100% auto;background-position: bottom center;}包个container2>小程序倒计时60秒 以及倒计时的时候按钮无法点击 ,60秒之后重新<form bindsubmit="formSubmit" bi

借助云开发实现小程序朋友圈的发布与展示丨实战

知识技能点 1,小程序云开发 2,小程序云存储 3,小程序云数据库 4,图片大图预览 5,图片选择与删除 先给大家画个发布的流程图 下面是我们真正存到数据库里的数据. 然后我们在朋友圈页只需要请求数据库里的数据,然后展示到页面就如下图所示 所以我们接下来就来实现发布和展示的功能 发布朋友圈 一,首先要创建一个小程序项目 这里就不多说了,注意:一定要用自己的appid,所以你需要注册一个小程序(个人的就行) 二,创建发布页面 我们发布页布局比较简单,一个文字输入框,一个图片展示区域,一个发布按钮.

「1.0」一个人开发一个App,小程序从0到1,起航了

古有,秦.齐.楚.赵.魏.韩.燕七国争雄:今有,微信.QQ.百度.支付宝.钉钉.头条.抖音七台争霸.古有,白起.李牧.王翦.孙膑.庞涓.赵奢.廉颇驰骋疆场:今有程序员1,程序员2,程序员3…编写代码. 逝者已矣,生者当如斯,活着就要折腾,不折腾不人生,不折腾枉为程序员,既然要折腾,那就挑个难度很高很高的技术来折腾,像小程序这种. 说笑的,其实从技术来说,小程序比iOS.Android.C#,甚至比Python都简单得多,因为它根本就不算编程语言,只是对Css.Html.Js做了一下包装,微信小程

「4.0」一个人开发一个App,小程序从0到1,布局

一提到布局这个词,我总是索索发抖,不是因为天冷,而是因为布局的目标实在太宏大.古代想雄霸天下的王,就喜欢布局这个,布局那个,结果硬生生把自己的国家给布局没了.至于是哪个君王,我倒可以非常认真,非常坦诚地告诉你,那个人不是我,也不是你. 否则我们哪有时间在这里用小程序布局手机界面.一个小小手机界面,就有很多花样,那跟大饼脸脸一样大的平板, 不是需要花费更多功夫? 其实可以不是的,只要你在布局界面的时候,留多点空白就好了.更最简单的办法,就是全部空白,什么都不放,只是这样的话,老板会让你早点滚蛋.如

微信小程序后台服务的发布

首先需发布小程序后台服务需要满足以下条件: ①服务的域名必须为备案的Https网站,支持二级域名不支持IP地址加端口的域名 ②其次部署服务的服务器系统环境需支持TLS1.2以上 一.Https网站 需要将普通的Http网站转换为Https网站,则需要ssl证书,将证书直接绑定到网站上即可,获取证书的途径主要有以下几种: 将Http网站就需要有以下几个途径: (1)在腾讯云或阿里云去申请,由于有效期只有一年,到期后需要重新申请替换,也比较麻烦,此处就不做讲述 (2)购买收费的ssl证书,这个简单易

一个人开发一个产品,小程序从0到1 ,第1章 开发工具

微信小程序于2017年1月9日正式上线后,受到了广大用户的关注,其较低的开发成本和微信庞大的用户量,为许多企业和个人提供了商机.为了帮助开发人员简单地新建项目,高效地开发微信小程序,微信团队提供了一套微信开发者工具. 1.1 下载安装 在微信官方文档.小程序(https://developers.weixin.qq.com/miniprogram/dev/framework)中,找到微信开发者工具的下载地址,按个人使用的操作系统下载对应的版本.不用纠结在什么平台下开发比较好的问题,毕竟它是跨平台