避坑指南:app新舊版本兼容問題
今天和大家聊下app新舊版本上的那些坑,當然本文不涉及什么復雜難懂的技術話語(其實本人也不懂),更多的是從讓用戶層更加容易接受的角度出發進行描述。
說在前面
17年轉行做產品,到現在也算半個產品人了吧?!
剛開始做產品接觸的是web端的saas類產品,新功能更多的是直接web部署上線,不存在太多新老版本的問題,登陸網址大家就可以享用最新的功能。當時也并不是很了解app上新老版本的一些問題,然后最近開始接觸移動端相關的產品設計,開始把所有新老版本的坑都走了一遍,著實難受,因此今天做下總結。
一、版本
什么是版本,簡單的理解就是app store或應用寶等市場提示你該軟件要更新了,更新的這個就是最新版本,只有下載了最新版本才能體驗到app的最新功能。
一般app會有幾種方式提示你有新版本去更新:
- 強制更新,不更新就用不了(全局性強制和模塊式強制);
- 提示更新,可以選擇忽略;
- 某個功能場景下提示更新。
強制更新一般較少使用,不給用戶選擇的權利導致體驗較差;提示更新是當前較為主流的辦法,支持舊版可以正常使用的情況下告知用戶有新版本,選擇權在用戶手里。
場景提示更新其實也屬于提示更新,這里單獨拎出來說明一下:當應用功能模塊較多時,當只有涉及到一個功能模塊更新時,就可以采用當用戶使用這個模塊時進行提示更新,提示更新仍可分為兩種:忽略和強制。
而更新的方式大體有兩種,大部分應用采用通過跳轉至應用商店讓用戶更新至最新的app:
- 下載整個應用包,跳轉至應用商店現在或直接進行下載;
- 下載局部更新包,不需要關閉app就可完成更新。
二、功能
更多的更新方式不做贅述,什么情況下采用什么樣的更新方式呢?
我們回歸本質的東西:版本。
每次發布app版本都是涉及到功能的更新,所以我們可以從發布的功能大小、涉及面等進行劃分三大類:
- 新功能;
- 原功能大改版;
- 優化功能。
1.1 功能對比圖
新功能和優化功能可以看成新的模塊,舊版本就是沒有開放使用的入口,并不會影響用戶繼續使用舊版本的app,如果有需要使用最新功能則可以進行更新。
一般這種情況下我們引導用戶更新,選擇權在用戶手上。
原功能大改版比較復雜,因為涉及到的業務邏輯都發生了改變,邏輯發生改變意味著數據層面的交互發生改變,數據層面發生改變就意味著數據接口需要改變。
當然這里有兩種處理辦法:
- 改造原來的數據接口以支持新版;
- 重新寫一套接口,新舊接口共存。
1.2 新舊版本處理方式
相比于第一種半強制更新的辦法,第二種更加的友好,用戶有權利選擇是否去更新,但是由于需要提供兩套接口且接口需要跟著app版本走,開發成本會增加。
當然大廠一般都是第二種方案處理的,等大部分用戶都在新版后,數據同步一致了,舊甚至是更舊版本便會強制用戶進行更新,隨著版本越高,舊的接口維護起來就越不劃算。
同時采用第二種新舊接口共存仍然會存在一些問題,當應用功能涉及到用戶間的交互,如用戶A在用舊版,用戶B在用新版,此時兩端發生兩端交互時,可能存在新版“輸出”的東西舊版識別不了。
1.3 用戶新舊版本對照
如果產品設計框架上本身就考慮了很多拓展性,新舊版本便不存在這些問題;如果框架上不支持,且通過兼容的方式成本又比較大,則可以引導舊版進行強制更新的方式。
三、新老數據
當功能發生很大變化時,必會導致舊數據和新數據字段或功能不一的情況,假設只是原來字段的增刪改,新版通過數據的清洗保持一致即可,但是假設需要更多的其他形式的支撐,原來的數據列表情況無法支持,這時可選擇將原來的數據作為歷史數據保存一份,和最新數據分開來,也就是存在兩個數據列表:一新一舊。
1.4 新老數據
總結
產品從設計開始之初在框架上做好拓展性,即便后期進行版本升級,舊版本和新版本依舊可以正常使用,如果條件允許新舊版本可以保持兩套接口。新舊版不影響使用,不強制用戶升級對用戶使用體驗較好;否則就只能強制用戶升級了。
本文由 @F.yrun 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自 Unsplash,基于CC0協議。
感謝分享!想請教一下:“采用第二種新舊接口共存仍然會存在一些問題,當應用功能涉及到用戶間的交互,如用戶A在用舊版,用戶B在用新版,此時兩端發生兩端交互時,可能存在新版“輸出”的東西舊版識別不了?!边@個可以舉個例子說明嗎?
666 學到很多,贊一個
對于工具類APP強制更新會引來用戶的不滿
迭代多次的要準備一堆接口嗎?
用戶數據是不是不跟隨版本進行轉移?
從產品架構來說,如果都是基于原來版本升級,更多的是升級接口.這種情況不需要不同套接口
迭代用戶數據肯定還在的
1、有的時候,用戶數據會因為版本更新,需要變更字段的情況呢?
2、新功能是統計功能,所有獲取數據方式是新寫的,只有后續的發布信息之類,才有統計,以前的數據沒有統計?
為啥不強制更新呢,自己給自己作么?
每次迭代都強更,體驗很差,你想一想,你在外用微信準備付錢時,突然提示強制更新,你會不會日了張小龍全家?
一般更新都在晚上12點以后咯
那比如說12點更新了,我沒用微信,第二天早上才用,打開想直接付款,這時候要強制更新,是不是還想日張小龍
這個比喻很形象,哈哈哈