iOS學(xué)小程序從0到發(fā)布(適合iOS開發(fā)看)

Emmmm佑菩,最近一波失業(yè)潮盾沫。富某康、某團(tuán)殿漠、摩某赴精、京某、知某凸舵、某浪祖娘、58 某大面積裁員,那么在這個(gè)千鈞一發(fā)之際啊奄,單純iOS開發(fā)也著實(shí)不好過渐苏,回過頭看一下,裁掉的都是單一選手菇夸,為了節(jié)約成本公司留下的都是身兼多職的全棧開發(fā)工程師琼富。

那么iOS, 有些選手就要找對方向再學(xué)一手以備下次被裁員的不是自己。HTML庄新,CSS, JS,小程序鞠眉,React, React Native浮現(xiàn)在選手面前择诈。 好械蹋,進(jìn)入正題,今天開始從0入門小程序羞芍。咦哗戈,等等,為什么叫選手呢荷科,因?yàn)楫?dāng)前環(huán)境下經(jīng)濟(jì)不景氣都是去競爭口飯吃的唯咬,就像是在比賽,故本文稱之為選手畏浆。

首先胆胰,學(xué)習(xí)小程序開發(fā)對于學(xué)習(xí)iOS開發(fā)成本實(shí)在是低,低到什么程度呢刻获?低到你單看這篇文章就可以開發(fā)并發(fā)布小程序蜀涨。

一:小程序注冊

注冊小程序帳號

在微信公眾平臺(tái)官網(wǎng)首頁(mp.weixin.qq.com)點(diǎn)擊右上角的“立即注冊”按鈕。

關(guān)于小程序賬號注冊填寫從相關(guān)的各位選手可以去微信公眾平臺(tái)自己看官方文檔這里不做詳細(xì)介紹https://developers.weixin.qq.com/miniprogram/introduction/index.html

image

二:這篇文章重點(diǎn)要介紹的是開發(fā)工具和代碼方面的知識(shí)。

微信開發(fā)工具下載地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

那么現(xiàn)在我已經(jīng)下載好了

image

點(diǎn)擊小程序項(xiàng)目勉盅,進(jìn)入

image

如圖佑颇,我這是之前已經(jīng)創(chuàng)建好的項(xiàng)目,會(huì)顯示在圖上右邊草娜,如果是本地沒有小程序項(xiàng)目挑胸,則創(chuàng)建就可以了,相信我們的iOS開發(fā)們這些都不是事宰闰,emm不行茬贵,怕有些 人還是不會(huì),老規(guī)矩上圖

image

好移袍,終于看到代碼了解藻,到這里才是本文接下來要講的重點(diǎn)。

先來看下我們今天要實(shí)現(xiàn)的效果葡盗。

image

再來整體看下代碼架構(gòu)

image

先來看四種文件螟左,.js, .json,.wxss,.wxml。

.js處理邏輯觅够,數(shù)據(jù)胶背,獲取網(wǎng)絡(luò)請求的數(shù)據(jù)即在這里面

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

.wxml創(chuàng)建的控件钳吟,比如view,button窘拯,map組件

.wxss控件的修飾红且,比如frame,backgroudcolor等

看到這里是不是感覺有點(diǎn)跟MVVM設(shè)計(jì)模式相似呀,不同功能的代碼分文件來寫涤姊,一目了然暇番。

好,先看示例首頁搜索頁面的輸入框思喊。

.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'>播放次數(shù):{{item.play}}</view>
           <view class='length'>總共:{{item.tracks}}集</view>
          </view>
      </view>
    </view>
  </view>
</view>

如圖不同顏色框?qū)?yīng)不同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; 代表邊框?qū)?rpx,樣式ridge搔涝,顏色黑色
2..table: width: 100vw;代表鋪滿寬,即100%
3..listitem: display:flex和措;采用flex彈性布局庄呈,flex-direction: row; 即豎向布局,即我們熟悉的tableview樣式派阱,同理flex-direction: column; 橫向布局诬留。padding:20rpx;即向里周邊都縮進(jìn)20rpx
4..bottomView : justify-content:space-between;justify-content 用于設(shè)置或檢索彈性盒子元素在主軸(橫軸)方向上的對齊方式。
| flex-start | 默認(rèn)值。項(xiàng)目位于容器的開頭文兑。 | 測試 ? |
| flex-end | 項(xiàng)目位于容器的結(jié)尾盒刚。 | 測試 ? |
| center | 項(xiàng)目位于容器的中心。 | 測試 ? |
| space-between | 項(xiàng)目位于各行之間留有空白的容器內(nèi)绿贞。 | 測試 ? |
| space-around | 項(xiàng)目位于各行之前因块、之間、之后都留有空白的容器內(nèi)籍铁。 | 測試 ? |
| initial | 設(shè)置該屬性為它的默認(rèn)值涡上。請參閱 initial。 | 測試 ? |
| inherit | 從父元素繼承該屬性拒名。請參閱 inherit吩愧。 |
5.其他諸如:color,font-size這些不多做解釋增显。

下面來到了.js文件有了這一步雁佳,咸魚變活魚,界面搭好了同云,就等渠里通水了糖权。

Page({

  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
    searchResults:[],

  },
  /**
   * 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動(dòng)作
   */
  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,
    })
  }
})

首先輸入搜索的內(nèi)容后,點(diǎn)擊搜索梢杭,iOS里應(yīng)該是有個(gè)textfieldshouldReturn温兼,這個(gè)事件。那么小程序同理武契,我們之前已經(jīng)在wxml里綁定過了募判,那就是bindconfirm="shouldDone"這行代碼,bindconfirm就是這個(gè)事件咒唆,我們綁定上之后届垫,在js文件里實(shí)現(xiàn)這個(gè)shouldDone方法,然后再shouldDone方法里進(jìn)行網(wǎng)絡(luò)請求去獲取數(shù)據(jù)就好全释。

說到網(wǎng)絡(luò)請求装处,微信小程序的封裝那是厲害的一批,
看圖

image.png

wx.request就是調(diào)網(wǎng)絡(luò)請求浸船,url是請求的鏈接妄迁,method是請求的方法get,post李命。
post需要傳參的話下面再加個(gè)data參數(shù)傳進(jìn)去就好登淘。
success就是請求成功的回調(diào),res就是response封字,更神奇的是黔州,返回?cái)?shù)據(jù)的解析如圖上:var results = res.data.album.docs; 竟然直接點(diǎn)語法就把json給解析了耍鬓,如圖所示的格式


image.png

是不是太方便了。
有了數(shù)據(jù)了流妻,下面來處理數(shù)據(jù)牲蜀,如圖


image.png

播放次數(shù),實(shí)際服務(wù)器返回的“play”這個(gè)字段播放次數(shù)是64168345绅这,那我們要轉(zhuǎn)為6416.8萬涣达,這該怎么轉(zhuǎn)呢,如果是OC代碼那我們就得心應(yīng)手君躺,但這里是小程序峭判。
首先這是一個(gè)列表,每條數(shù)據(jù)里都有play這個(gè)字段棕叫,兩種方案:1.就是要遍歷下數(shù)組林螃,然后把數(shù)組中的這個(gè)字段對應(yīng)的值做下修改。2.直接在對控件賦值的時(shí)候做轉(zhuǎn)換(也就是對應(yīng)iOS里cellforrow里給控件賦值的時(shí)候)俺泣。那我們現(xiàn)在wxml里已經(jīng)寫好了疗认,直接取的就是play這個(gè)字段的值,并沒有做轉(zhuǎn)換伏钠,如圖
suo

所以我們現(xiàn)在采用第一種方法

遍歷數(shù)組


image.png

那么現(xiàn)在數(shù)據(jù)就修改完了横漏,要顯示了

 that.setData({
          searchResults: results,
        })

這句話就是把我們得到的返回的數(shù)據(jù)賦值給我們在data里定義的searchResults


image.png

同時(shí),wxml里綁定的searchResults熟掂,就會(huì)刷新出來界面缎浇。


image.png

到此首頁搜索界面的實(shí)現(xiàn)介紹完畢。下班了赴肚,先回家吃飯了素跺,餓死∮回來繼續(xù)

感謝各位看官指厌!

代碼地址:https://git.dev.tencent.com/cong_Wang/xcx.git
git clone 即可下載下來代碼。
如圖:已經(jīng)下載下來了

image.png

那么怎么跑這個(gè)代碼呢踊跟?我們打開微信開發(fā)工具踩验,
image.png

點(diǎn)擊+號,即新建項(xiàng)目商玫,導(dǎo)入項(xiàng)目箕憾,選擇代碼的目錄,選擇測試號拳昌,即會(huì)為你生成一個(gè)測試appid厕九,點(diǎn)擊導(dǎo)入按鈕。
image.png

大功告成地回,現(xiàn)在就可以跑項(xiàng)目了
image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扁远,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子刻像,更是在濱河造成了極大的恐慌畅买,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件细睡,死亡現(xiàn)場離奇詭異谷羞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)溜徙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門湃缎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蠢壹,你說我怎么就攤上這事嗓违∫薷耄” “怎么了缺虐?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長落追。 經(jīng)常有香客問我疏日,道長偿洁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任沟优,我火速辦了婚禮涕滋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挠阁。我一直安慰自己宾肺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布鹃唯。 她就那樣靜靜地躺著爱榕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坡慌。 梳的紋絲不亂的頭發(fā)上黔酥,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機(jī)與錄音洪橘,去河邊找鬼跪者。 笑死,一個(gè)胖子當(dāng)著我的面吹牛熄求,可吹牛的內(nèi)容都是我干的渣玲。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼弟晚,長吁一口氣:“原來是場噩夢啊……” “哼忘衍!你這毒婦竟也來了逾苫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤枚钓,失蹤者是張志新(化名)和其女友劉穎铅搓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搀捷,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡星掰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嫩舟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氢烘。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖家厌,靈堂內(nèi)的尸體忽然破棺而出播玖,到底是詐尸還是另有隱情,我是刑警寧澤像街,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布黎棠,位于F島的核電站,受9級特大地震影響镰绎,放射性物質(zhì)發(fā)生泄漏脓斩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一畴栖、第九天 我趴在偏房一處隱蔽的房頂上張望随静。 院中可真熱鬧,春花似錦吗讶、人聲如沸燎猛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽重绷。三九已至,卻和暖如春膜毁,著一層夾襖步出監(jiān)牢的瞬間昭卓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工瘟滨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留候醒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓杂瘸,卻偏偏與公主長得像倒淫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子败玉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容