ios如何看idfv_如何無中生有資源搜索神器

4dbc129fb887be959f34260b31044df5.png

作者 | Castie!?
來源 | https://coderzsq.github.io

日常扯淡

首先申明,這絕對不是標題黨,看完全文你一定也能夠自行的寫出一個資源搜索App,其實這個App,本來是想在App Store賣錢的,畢竟感覺需求量還是很大,雖然知道有可能涉及版權的問題,但本想只做一個搜索功能,讓用戶自行下載應該也能打打擦邊球蒙混過關吧,誰知現在蘋果審核 5.2.3,直接搬出了法律神器,讓我不敢逾越雷池一步,經過內心的掙扎,還是決定不鋌而走險,開源以回報社會。

其實這個App,并不是特別復雜,說實話也沒有什么技術含量,iOS端的代碼是在2天閑暇時間內寫完的,有一定經驗的開發者估計也不會差很多,核心在于對數據的爬取,這里我是用Python寫的爬蟲,其實爬蟲并不復雜,應該說是簡單至極,我整個服務端加上爬蟲也就區區300行不到的代碼,可見難易程度,所以本文,并不會教你如何進行實現貼代碼,而是會在產品的思路上進行探討,如果你有看過我之前一篇?iOS 開發者該認真思考的「三個問題」[1]就應該了解技術并不是很重要,重要的是對人性的把握。

技術選型

由于這是一個全棧的項目,這可是真全棧,從產品,設計,運營,客戶端,服務端,數據端,運維都有所涉及,所以不能片面的看待問題,我們需要一個系統的視角,如何能夠讓這款產品受到用戶的喜愛,(的確有很多的朋友想要這款軟件,但是... 蘋果爸爸不允許呀...),回到正題,所以我們需要一個最小可用的APP,什么是最小可用? 就是實現最少的功能,讓功能產生閉環,并能夠提供價值。

所以以這個為出發點,設計了最簡單的交互邏輯,即點擊可得和搜索可得,減少用戶交互的邏輯,讓用戶直接達到爽感。所以,為了完成這個目標,我們需要一些開發工具,我這里用的很簡單,Xcode,Photoshop,Sublime Test,即可,對,我并沒有使用產品原型設計工具,因為這種東西本來就是給開發看的,然而當你自己成為開發者后,就等于你有了上帝之手,直接就可以進行實現,有邏輯設計不合理之處也能夠自行修正。

前端,我就不多介紹了,因為本想以盈利為目的,所以選擇了iOS端的App Store,然而... 后端我選用的是Python的Flask,非常適合開發小型App,代碼少易控制,簡單易用。

獲取數據

如何獲取數據,這里我們使用的是豆瓣的數據,如何爬取豆瓣,網上有大把大把的教程,可以自行查閱,而鏈接的地址呢,你可以自行網上查找可用的免費資源分享網站進行爬蟲,雖然有些會有反爬機制,但你可以反反爬呀,就像逆向一樣,別人可以反調試,你可以反反調試呀,網絡安全,一點都不安全... 這里我就選在了,種子貓,磁力搜,飄花,訊播,被窩進行了爬蟲,使用豆瓣爬到的數據進行其他網站的爬蟲即可。?

a4f91adc54270fd4a99367ce890e0fc3.png

構建服務

之前有說,我選用的是Flask框架,所以只需要用裝飾器就可以立竿見影的寫接口,具體業務邏輯可以自行閱讀源碼,只要你有一點點開發經驗就可以看懂的,這里的難點... 也不是難點,就是如何部署服務器,這就是有關運維的操作了,我這里使用的是Nginx + gunicorn搭建的服務器,具體操作也可以看下教程,具體就是端口映射和負載均衡,記得如果是阿里云的話,需要開啟端口的訪問權限。

產品設計

有了數據,接下來就該進行產品設計了,對于設計方面,其實作者并沒有什么設計的經驗,所以直接參考了Apple原生應用的設計語言,然后用最少的邏輯達到想要的效果,真可謂是極簡主義了哈哈哈,當然設計的時候也有一些小細節需要注意,比如iOS13的暗黑模式的切換,還有modal的時候iOS13和之前默認的效果不同都需要進行兼容,還有的就是,顏色方面不要用純黑和純白,這樣看起來的效果會比較的好。icon設計的話,可以使用阿里開源的icon庫[2],這不是給阿里打廣告,也不需要我這種菜雞來打廣告hhh。

有關運營

說到這里就要貼出App Store 審核指南[3],如果你需要自己開發一個App,建議你通讀此文,我就是踩到了這個坑... 被5。2。3給拒之門外了,

6e3000de2336dddb5cd4a281287ba676.png

你需要了解ASO,這里推薦給你 七麥數據 這個網站。可以了解一些搜索指數,什么樣的關鍵詞是用戶會經常搜索的,這樣可以極大的曝光你的App。

f73b8abbade7e7091f9bdd6783ad899d.png

最后需要做的就是收集用戶反饋以及建立社群,但我并沒有走到這一步... 有機會再分享吧。

效果展示

接下來只需要進行iOS端的開發了,我這里就簡單的使用了OC + StoryBoard的傳統開發模式,等SwiftUI成熟了之后再切換成Swift開發吧,如果想要學習Swift 可以關注我的另一個倉庫。

30d1ffc3b89e797cb06985910367fb7a.gif

開源分享

iOS 項目相關倉庫[4]

ae7319a8c42b302def9525639347e4e4.png

Native 技術練習倉庫[5]

ee91a8f22ce613834581169575193c27.png

Data 技術練習倉庫[6]

6b6f03d5c3a2f8ca48e9e4b1f8bc7d7e.png

本文所述代碼 已用紅框所示。

寫在最后

有了這次的經驗,下次開發會效率快的多,有想法就去實現,而不是寫那種沒有用的Demo,期待作者下次優秀的作品吧!

參考

[1]https://coderzsq.github.io/2019/01/iOS-%E5%BC%80%E5%8F%91%E8%80%85%E8%AF%A5%E8%AE%A4%E7%9C%9F%E6%80%9D%E8%80%83%E7%9A%84-%E4%B8%89%E4%B8%AA%E9%97%AE%E9%A2%98/?
[2]https://www.iconfont.cn/?
[3]https://developer.apple.com/cn/app-store/review/guidelines/#intellectual-property?
[4]https://github.com/coderZsq/coderZsq.project.ios?
[5]https://github.com/coderZsq/coderZsq.practice.native?
[6]https://github.com/coderZsq/coderZsq.practice.data


推薦閱讀
??聊聊AppDelegate解耦??iOS 原生 App 是怎么 deselectRow 的??動手制作一個簡易的iOS動態執行器??iOS 流量監控分析

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538175.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538175.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538175.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機語言需要有英語基礎,有關“計算機語言”的問題

一般需要一點英語基礎,因很多語句其實是英文單詞,且編譯錯誤信息大多是用代碼或英文提示的。但一個完全不會英語的人只要努力還是能學會編程語言的,計算機語言中涉及的英文單詞大多不是很難,花點時間完全能記住,出錯的…

Eclipse Console 加大顯示的行數,禁止彈出

原文鏈接:http://blog.csdn.net/leidengyan/article/details/5686691 -------------------------------------------------- Eclipse Console 加大顯示的行數: 在 Preferences-〉Run/Debug-〉Console里邊,去掉對Limit console output的選擇&…

excel range 判斷日期型_為什么精英都是Excel控?

讓你相見恨晚的Excel精髓攻略,吐血整理!三小時幫你提升90%的效率,這份Excel教程必須!(點贊收藏)Excel能夠滿足工作中絕大部分的數據分析需求,很多小細節的設計會節省下工作中非常多的時間&#…

移動端 | Vue.js對比微信小程序基礎語法

&#xff08;1&#xff09;vue 自定義組件與父組件的通信&#xff0c;props&#xff1a;[abb],可以看成自組建的一個自定義屬性 &#xff08;2&#xff09;vue 模版語法{{}} 只能是在DOM中插入&#xff0c;<div>{{acc}}</div>, 綁定屬性的話應v-bind&#xff1a;id…

計算機組裝電源線排,主機箱背部走線技巧 組裝電腦走背線與理線教程

近年來&#xff0c;裝機行業流行一個術語&#xff0c;即“走背線”&#xff0c;那么走背線是什么&#xff1f;裝機之家小編簡單介紹下&#xff0c;通俗的說&#xff1a;走背線就是針對電腦機箱&#xff0c;裝機的時候&#xff0c;將機箱內部和電源的線材做到最干凈整潔&#xf…

查看oracle數據庫允許的最大連接數和當前連接數

原文鏈接&#xff1a;http://blog.csdn.net/zmx729618/article/details/54018629 ----------------------------------------------------------------------------- 在查看數據的連接情況很有用&#xff0c;寫完程序一邊測試代碼一邊查看數據庫連接的釋放情況有助于分析優化…

干煸線椒的做法_美食:農家蒸土雞,剁椒梅鱭魚干,干煸茶樹菇,芹菜炒牛肉的做法...

閱讀本文前&#xff0c;請您先點擊上面“藍色字體”&#xff0c;再點擊“關注”&#xff0c;這樣您就可以免費收到我們的最新內容了&#xff0c;每天都會有更新&#xff0c;完全是免費訂閱&#xff0c;請放心關注。圖文來源網絡&#xff0c;侵權聯系刪除&#xff01; …

計算機出現假桌面怎么解決辦法,win10系統apphangxprocb1引起桌面假死怎么解決【圖文】...

電腦死機怎么辦&#xff1f;有win10系統用戶反應win10系統apphangxprocb1引起桌面假死怎么解決&#xff1f;出現這種情況該怎么解決&#xff1f;下面就將方法分享給大家。描述:出現了一個問題,該問題導致了此程序停止與 Windows 進行交互。錯誤的應用程序路徑: C:Windowsexplor…

Tomcat log文件

catalina.out 是Tomcat啟動和運行時訪問日志。包括訪問報錯日志。不包括啟動報錯日志。包括了 catalina.2017-12-02.log 的日志。 localhost.2017-12-02.log 報錯日志&#xff0c;包括啟動時報錯&#xff0c;如框架初始化失敗日志&#xff0c;如spring的容器初始化日志…

如何將對象拼接成get傳值的形式

傳遞的參數為params對象export default {data () {return {phone: 18688754577,password: 123456}},computed: {params () {let params {}params.phone this.phoneparams.password this.passwordreturn params}},methods: {concatParams (params) {let paramsStr for (var …

= 改為 in

for (String tableName : tableNames) {//檢查是否全為空for (long p_hour start; p_hour < end; p_hour) {String sql"select * from HIVE_READ_INSERT_HISTORY where "imsiORmsisdnSql(imsi, msisdn, tableName)" and p_hour"p_hour" " &q…

noj數據結構稀疏矩陣的加法十字鏈表_數據結構之:圖

導讀1. 什么是圖&#xff1f;圖的存儲方式&#xff1f;2. 圖的遍歷&#xff08;深度優先搜索&#xff0c;廣度優先搜索&#xff09;3. 最短路徑1. 什么是圖&#xff1f;圖的存儲方式&#xff1f;前面總結了“樹”這種數據結構&#xff0c;而這篇博客總結的是更為復雜的一種數據…

vue中用數組語法綁定class

簡單的綁定class就不說了&#xff0c;它可以和對象語法一樣&#xff0c;使用data、computed、methods三種方法。說一下我在工作里體會到這種作法的好處。那么直接上代碼。。。咔咔咔 說下需求&#xff0c;我是做一個顯示框&#xff0c;當status為1時&#xff0c;代表成功狀態&a…

解釋型語言與編譯型語言的區別

編譯型語言在程序執行之前&#xff0c;有一個單獨的編譯過程&#xff0c;將程序翻譯成機器語言&#xff0c;以后執行這個程序的時候&#xff0c;就不用再進行翻譯了。 解釋型語言&#xff0c;是在運行的時候將程序翻譯成機器語言&#xff0c;所以運行速度相對于編譯型語言要慢。…

三星臺式機計算機編號怎么看,三星筆記本如何查看型號

現如今&#xff0c;電腦的用途廣泛&#xff0c;而且方便快捷&#xff0c;深受人們的歡迎&#xff0c;人們不僅可以通過電腦來了解知識&#xff0c;開闊眼界&#xff0c;而且電腦是一種消遣、娛樂的方式&#xff0c;可以放松身心。那電腦的話&#xff0c;有分兩種&#xff0c;一…

自旋鎖和互斥鎖實例_多線程編程之自旋鎖

一、什么是自旋鎖一直以為自旋鎖也是用于多線程互斥的一種鎖&#xff0c;原來不是&#xff01;自旋鎖是專為防止多處理器并發(實現保護共享資源)而引入的一種鎖機制。自旋鎖與互斥鎖比較類似&#xff0c;它們都是為了解決對某項資源的互斥使用。無論是互斥鎖&#xff0c;還是自…

如何卸載symantec

前段時間,業務的虛機上安裝了symantec Endpoint Protection(正版)&#xff0c; 發現虛機運行一段時間就會失去響應死機&#xff0c;并且有些安裝symantec的虛機3389端口無法使用&#xff0c;怎么折騰都不行。最后決定卸載它。一、是否可以用停止服務和終止進程再卸載的方式卸載…

CSS文件引入順序

<link rel"stylesheet" href"bootstrap.min.css"> <link rel"stylesheet" href"app.css"> 自定義的css要最后引入。因為有時候會修改bootstrap的css。只有后引入的才會覆蓋。 如果提前引入了&#xff0c;自定義的會被bo…

瀏覽器的簡單兼容

2019獨角獸企業重金招聘Python工程師標準>>> function getXHER() { var xhr null; if(XMLHttpRequest){ xhr new XMLHttpRequest(); }else{ xhr new ActiveXObject(Microsoft.XMLHTTP); } return xhr; }轉載于:https://my.oschina.net/u/2511906/blog/1865622

用計算機算出陳赫手機號碼,陳赫手機號碼遭《快本》曝光,并被網友打到關機!還有人搜到了他的支付寶賬戶......

原標題&#xff1a;陳赫手機號碼遭《快本》曝光&#xff0c;并被網友打到關機&#xff01;還有人搜到了他的支付寶賬戶...昨天的陳赫可能是被不斷的電話鈴聲叫醒的&#xff0c;因為快本在節目中把陳赫的電話號碼給曝光了……當時導演讓每個明星向自己的一位圈內好友發出求助短信…