操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    月9日,Airbnb愛(ài)彼迎發(fā)布了2024年第一季度財(cái)報(bào)。在第一季度,愛(ài)彼迎平臺(tái)住宿和體驗(yàn)預(yù)訂量(“Nights and Experiences Booked”)突破1.33億,第一季度營(yíng)收同比增長(zhǎng)18%,達(dá)到21億美元。第一季度的凈利潤(rùn)為2.64億美元,該季度成為愛(ài)彼迎有史以來(lái)盈利能力最強(qiáng)的第一季度。調(diào)整后的稅息折舊及攤銷前利潤(rùn)(“EBITDA”)為4.24億美元。調(diào)整后的EBITDA利潤(rùn)率為20%,同比上漲6%。

    據(jù)動(dòng)點(diǎn)科技了解,2024年開(kāi)局的強(qiáng)勁表現(xiàn),得益于移動(dòng)端應(yīng)用程序下載量的持續(xù)增長(zhǎng),大型盛事的助推和活躍房源的增長(zhǎng)。

    言:本文主要介紹愛(ài)彼迎在 iOS App 中應(yīng)用 SwiftUI 并替換原有 UI 框架的實(shí)踐


    在構(gòu)建 App 的用戶界面(UI)時(shí),選擇合適的框架非常重要。正確的 UI 框架可以使應(yīng)用程序感覺(jué)流暢、響應(yīng)迅速,甚至令人愉悅,而不適合應(yīng)用程序需求的 UI 框架可能會(huì)讓人感覺(jué)遲緩,令人崩潰。這個(gè)原則對(duì)于開(kāi)發(fā)者的體驗(yàn)也同樣重要;一個(gè)具有良好 API 設(shè)計(jì)的 UI 框架可以使工程師流暢、高效且準(zhǔn)確地表達(dá)自己的想法,而一個(gè)具有錯(cuò)誤抽象或不一致 API 的框架可能會(huì)由于一些不必要的復(fù)雜性而使工程師的工作變得更加困難,低效。


    在愛(ài)彼迎,我們希望我們的移動(dòng)端應(yīng)用可以提供世界一流的用戶體驗(yàn)和開(kāi)發(fā)者體驗(yàn)。基于這個(gè)愿望,我們?cè)?2016 年構(gòu)建了我們自己的 UI 框架:Epoxy。Epoxy 是一個(gè)聲明式的 UI 框架,工程師只需要描述在任一視圖狀態(tài)下想要什么樣的 UI 結(jié)構(gòu),框架會(huì)自動(dòng)更新視圖層次結(jié)構(gòu)并渲染頁(yè)面內(nèi)容。Epoxy 再使用 UIKit 來(lái)渲染視圖。


    在 2019 年,隨著 SwiftUI 的推出,iOS 的 UI 框架格局發(fā)生了變化。SwiftUI 是第一個(gè)官方的聲明式 UI 框架,實(shí)現(xiàn)了與 Epoxy 類似的目標(biāo)。盡管在最初的三年里,SwiftUI 并不符合我們的需求,但到了 2022 年,它的穩(wěn)定性和 API 可用性得到了顯著提高。因此,我們開(kāi)始考慮在愛(ài)彼迎中采用 SwiftUI。


    在這篇文章中,我們將分享為什么以及最終如何在愛(ài)彼迎中用 SwiftUI 替代了 Epoxy 和 UIKit。我們將詳細(xì)介紹如何將 SwiftUI 集成到愛(ài)彼迎的界面設(shè)計(jì)體系中,講解這項(xiàng)工作所帶來(lái)的成果,并列舉一些我們?nèi)栽诮鉀Q的挑戰(zhàn)。閱讀完這篇文章后,你將了解為什么 SwiftUI 已經(jīng)達(dá)到我們對(duì)用戶和開(kāi)發(fā)者體驗(yàn)的高標(biāo)準(zhǔn)。


    評(píng)估和規(guī)劃使用 SwiftUI


    切換到一個(gè)新的 UI 框架并不是一項(xiàng)輕松的任務(wù)。經(jīng)過(guò)調(diào)研,我們提出了以下假設(shè),即 SwiftUI 不會(huì)對(duì)用戶體驗(yàn)造成影響,并且會(huì)改善開(kāi)發(fā)者體驗(yàn),因?yàn)椋?/span>

    • 靈活且可組合性:SwiftUI 能通過(guò)使用泛型視圖和視圖修飾符來(lái)提供更強(qiáng)大且靈活的模式來(lái)管理視圖變體和樣式。這會(huì)大幅減少構(gòu)建應(yīng)用所需的視圖數(shù)量,因?yàn)樗沟米远x現(xiàn)有視圖和在調(diào)用處內(nèi)聯(lián)組合新的行為變得更容易。
    • 完全聲明式:SwiftUI 代碼更容易理解和維護(hù)。不會(huì)出現(xiàn)需要頻繁在命令式和聲明式編程之間切換的場(chǎng)景,例如之前在使用 Epoxy 時(shí),工程師經(jīng)常需要切換到編寫 UIKit 代碼。
    • 代碼更少:由于 SwiftUI 完全采用聲明式編程,構(gòu)建一個(gè) SwiftUI 視圖組件所需的代碼量將大大減少。通常情況下,bug 數(shù)量也會(huì)隨之減少。
    • 更快的迭代速度:與使用 UIKit 時(shí)需要 30 秒甚至更長(zhǎng)時(shí)間進(jìn)行編譯和運(yùn)行的迭代周期相比,Xcode 預(yù)覽功能能夠在 SwiftUI 視圖組件和頁(yè)面上實(shí)現(xiàn)幾乎即時(shí)的迭代周期。
    • 符合習(xí)慣:由于 SwiftUI 較少使用定制的范式和模式,所以在構(gòu)建 UI 時(shí)會(huì)降低認(rèn)知負(fù)擔(dān)。這將使得新工程師更容易上手。

    基于這些,我們制定了一個(gè)計(jì)劃,分為三個(gè)階段來(lái)評(píng)估和應(yīng)用 SwiftUI:

    • 第一階段:構(gòu)建我們?cè)O(shè)計(jì)系統(tǒng)中的可重用視圖組件等葉子視圖。
    • 第二階段:構(gòu)建完整的頁(yè)面,如預(yù)訂詳情頁(yè)或用戶個(gè)人資料頁(yè)。
    • 第三階段:構(gòu)建由多個(gè)頁(yè)面組成的完整功能。

    截至發(fā)布本文時(shí),我們已經(jīng)成功完成了前兩個(gè)階段,而第三階段則需要等待 SwiftUI 增添靈活的導(dǎo)航 API。在組件(第一階段)和頁(yè)面(第二階段)階段,我們進(jìn)行了一個(gè)小規(guī)模的試點(diǎn)項(xiàng)目,工程師們可以通過(guò)報(bào)名嘗試使用 SwiftUI。我們通過(guò)收集試點(diǎn)項(xiàng)目反饋,來(lái)在進(jìn)入下一階段前來(lái)改進(jìn)對(duì) SwiftUI 的支持。這種方法使我們能夠在過(guò)程的每個(gè)階段都提供了價(jià)值,而不是從一開(kāi)始就為整個(gè)功能應(yīng)用 SwiftUI 而進(jìn)行大規(guī)模和不確定的基礎(chǔ)架構(gòu)重構(gòu)。


    啟用 SwiftUI


    我們?cè)诨A(chǔ)架構(gòu)和普及培訓(xùn)方面做了很多工作,以確保工程師們能夠成功遷移到 SwiftUI。


    界面設(shè)計(jì)體系


    為了加快在全公司范圍內(nèi)對(duì) SwiftUI 的應(yīng)用,對(duì)愛(ài)彼迎的界面設(shè)計(jì)體系提供一流的 SwiftUI 支持是一個(gè)關(guān)鍵且優(yōu)先的事項(xiàng)。我們并非只是簡(jiǎn)單地將現(xiàn)有的 UIKit 組件與 SwiftUI 橋接,而是重新構(gòu)建了 SwiftUI 中的界面設(shè)計(jì)體系,使其更加靈活和強(qiáng)大。

    在我們的界面設(shè)計(jì)體系中,每個(gè)視圖組件都支持通過(guò)自定義樣式化來(lái)提高可重用性。我們有一系列的樣式協(xié)議,當(dāng)與自動(dòng)生成代碼結(jié)合使用時(shí),可以將樣式對(duì)象通過(guò) SwiftUI 環(huán)境注入來(lái)模擬 SwiftUI 內(nèi)置的樣式化范例。其中符合此協(xié)議的樣式被稱為“靈活樣式”。以下是一些示例代碼:

    public protocol FlexibleSwiftUIViewStyle: DynamicProperty {
      /// The content view type of this style, passed to `body()`.
      associatedtype Content
      /// The type of view representing the body.
      associatedtype Body: View
      /// Renders a view for this style.
      @ViewBuilder
      func body(content: Content) -> Body
    }


    該協(xié)議允許我們創(chuàng)建一個(gè)樣式對(duì)象,其中包含一系列可設(shè)置的屬性,可以完全自定義組件的渲染。樣式對(duì)象接收一個(gè)內(nèi)容對(duì)象,以使它在創(chuàng)建新的視圖體時(shí)可以訪問(wèn)視圖的底層狀態(tài)或交互行為,以下是一個(gè)數(shù)字步進(jìn)器的示例樣式實(shí)現(xiàn)(為了簡(jiǎn)潔起見(jiàn),省略了一些樣式設(shè)置):

    public struct DefaultStepperStyle: DLSNumericStepperStyle {
      public var valueLabel=TextStyle…
    
    
    
    
      public func body(content: DLSNumericStepperStyleContent) -> some View {
        HStack {
          Button(action: content.onDecrement) { subtractIcon }
            .disabled(content.atLowerBound)
          Text(content.description)
            .textStyle(valueLabel)
          Button(action: content.onIncrement) { addIcon }
            .disabled(content.atUpperBound)
          }
       }
    }

    默認(rèn)樣式的數(shù)字步進(jìn)器


    有了這樣的靈活樣式協(xié)議,工程師只需編寫幾十行代碼,就可以添加一個(gè)完全定制的步進(jìn)器樣式。只需要實(shí)現(xiàn)一個(gè)符合 DLSNumericStepperStyle 的新類型即可。該樣式可以使用自動(dòng)生成的視圖修飾符設(shè)置在視圖上:

    DLSNumericStepper(value: $value, in: 0...)
      .dlsNumericStepperStyle(CustomStepperStyle())


    自定義樣式的數(shù)字步進(jìn)器


    由于在 DLSNumericStepper 視圖中實(shí)現(xiàn)了優(yōu)化的輔助功能支持,自定義樣式會(huì)自動(dòng)獲得適當(dāng)?shù)妮o助功能行為。我們?cè)诮缑嬖O(shè)計(jì)體系的實(shí)現(xiàn)過(guò)程中廣泛使用了這種靈活樣式的方法,使得產(chǎn)品工程師能夠快速構(gòu)建新的組件變體,而且不會(huì)出現(xiàn)輔助功能方面的問(wèn)題。


    橋接 Epoxy


    愛(ài)彼迎 App 的數(shù)千個(gè)頁(yè)面都是由 Epoxy 支持的。為了實(shí)現(xiàn)對(duì) SwiftUI 的無(wú)縫遷移,我們構(gòu)建了基礎(chǔ)設(shè)施,使 Epoxy 能夠?qū)?SwiftUI 視圖橋接到基于 UIKit 的 Epoxy 列表中,同時(shí)還能夠?qū)?Epoxy 的 UIKit 視圖橋接到 SwiftUI 中。


    為了將 SwiftUI 視圖橋接到 UIKit 的 Epoxy 列表中,我們創(chuàng)建了一個(gè) itemModel 視圖修飾符,為 SwiftUI 視圖建立了 Epoxy 的標(biāo)識(shí)。在實(shí)現(xiàn)中,此方法將視圖包裝在 UIHostingController 中,并將其嵌入到集合視圖單元格中。這個(gè)工具使在現(xiàn)有的 Epoxy 頁(yè)面中采用 SwiftUI 變得非常簡(jiǎn)單,從而開(kāi)啟了我們?cè)?SwiftUI 試運(yùn)行的第一個(gè)階段。

    SwiftUIRow(
      title: "Row \(id)",
      subtitle: "Subtitle")
      .itemModel(dataID: id)

    類似地,我們可以通過(guò)使用視圖擴(kuò)展來(lái)將 UIKit 視圖橋接到 SwiftUI 中,該擴(kuò)展可以使用視圖內(nèi)容、樣式約束和任何其他視圖配置從 UIKit 組件創(chuàng)建一個(gè) SwiftUI 視圖。在實(shí)現(xiàn)中,這個(gè)API 使用了一個(gè)泛型的 UIViewRepresentable,在內(nèi)容和樣式發(fā)生變化時(shí)自動(dòng)創(chuàng)建和更新 UIView。

    EpoxyRow.swiftUIView(
      content: .init(title: "Row \(index)", subtitle: …),
      style: .small)
      .configure { context in
        print("Configuring \(context.view)")
      }
      .onTapGesture {
        print("Row \(index) tapped!")
      }


    由于 SwiftUI 具有截然不同的布局系統(tǒng),正確布局一個(gè) UIKit 組件是一個(gè)挑戰(zhàn)。因此我們開(kāi)發(fā)了一種可配置的方法,自動(dòng)支持復(fù)雜的視圖,比如需要額外的布局過(guò)程來(lái)正確調(diào)整大小的 UILabel。


    單向數(shù)據(jù)流


    在使用 Epoxy 時(shí),我們發(fā)現(xiàn)利用單向數(shù)據(jù)流模式可以使我們的 UI 變得更加可預(yù)測(cè)和易于理解。我們構(gòu)建頁(yè)面,使 Epoxy內(nèi)容作為頁(yè)面狀態(tài)的函數(shù)來(lái)進(jìn)行渲染。用戶交互當(dāng)作行為被分派,并導(dǎo)致頁(yè)面狀態(tài)發(fā)生變化,進(jìn)而觸發(fā)頁(yè)面的重新渲染。我們使用 StateStore 對(duì)象來(lái)存儲(chǔ)頁(yè)面狀態(tài)并對(duì)行為進(jìn)行處理以改變?cè)摖顟B(tài)。為了將這種模式應(yīng)用到 SwiftUI,我們更新了 StateStore,使其符合 ObservableObject 協(xié)議,這使得 store 在狀態(tài)變化時(shí)可以觸發(fā)頁(yè)面中 SwiftUI 視圖的重新渲染。我們發(fā)現(xiàn)工程師們更喜歡繼續(xù)使用這種模式在 SwiftUI 中構(gòu)建頁(yè)面,因?yàn)樗箻I(yè)務(wù)和狀態(tài)變化邏輯與呈現(xiàn)邏輯分離。在很多情況下,我們能夠?qū)㈨?yè)面邏輯從 Epoxy 轉(zhuǎn)移到 SwiftUI 頁(yè)面而不需要進(jìn)行任何更改。為了說(shuō)明它們的相似性,這里是一個(gè)簡(jiǎn)單的計(jì)數(shù)器頁(yè)面在兩個(gè)視圖系統(tǒng)中的實(shí)現(xiàn):

    // In Epoxy/UIKit:
    struct CounterContentPresenter: StateStoreContentPresenter {
      let store: StateStore<CounterState, CounterAction>
    
    
    
    
      var content: UniListViewControllerContent {
        .currentDLSStandardStyle()
        .items {
          BasicRow.itemModel(
            dataID: ItemID.count,
            content: .init(titleText: "Count \(state.count)"),
            style: .standard)
            .didSelect { _ in
              store.handle(.increment)
            }
        }
      }
    }
    // In SwiftUI
    struct CounterScreen: View {
      @ObservedObject 
      let store: StateStore<CounterState, CounterAction>
    
    
    
    
      var body: some View {
        DLSListScreen {
          DLSRow(title: "Count \(store.state.count)")
            .highlightEffectButton {
              store.handle(.increment)
            }
        }
      }
    }


    測(cè)試


    為了確保產(chǎn)品的質(zhì)量,我們希望 SwiftUI 代碼在設(shè)計(jì)上具有可測(cè)試性。快照測(cè)試是我們測(cè)試視圖的主要方法,我們使用一個(gè)靜態(tài)定義來(lái)為我們的組件瀏覽器和快照測(cè)試服務(wù)提供命名的視圖變體:

    enum DLSPrimaryButton_Definition: ViewDefinition, PreviewProvider {
      static var contentVariants: ContentVariants {
        DLSPrimaryButton(title: "Title") { … }
          .named("Short text")
    
    
    
    
        DLSPrimaryButton(title: "Title") { … }
          .disabled(true)
          .named("Disabled")
      }
    }


    由于我們?cè)谶@里返回視圖變體,這可以在測(cè)試中具有很多靈活性 - 該框架接受任何內(nèi)容變體或視圖修飾符的組合。此外,我們使這些組件定義符合 SwiftUI 的 PreviewProvider 協(xié)議,并將這些內(nèi)容變體轉(zhuǎn)換為預(yù)期的返回類型,以便工程師可以使用 Xcode Previews 快速迭代組件。


    與其他平臺(tái)上的聲明式 UI 框架不同,SwiftUI 沒(méi)有提供內(nèi)置的測(cè)試庫(kù)。為了支持對(duì)組件和頁(yè)面進(jìn)行行為測(cè)試,我們集成了開(kāi)源的 ViewInspector 庫(kù),并也對(duì)這個(gè)倉(cāng)庫(kù)貢獻(xiàn)了代碼。


    培訓(xùn)


    應(yīng)用 SwiftUI 的一個(gè)重大挑戰(zhàn)是在大型 iOS 團(tuán)隊(duì)中建立內(nèi)部的專業(yè)知識(shí)。為了積極應(yīng)對(duì)這個(gè)問(wèn)題,我們組織了多次為期半周的 SwiftUI 工作坊,幾乎有一半的 iOS 工程師參加了這些工作坊。參與者表示,他們 SwiftUI 基礎(chǔ)知識(shí)方面的自信程度提高了 37%,在構(gòu)建新組件方面的自信程度提高了 39%。此外,我們發(fā)現(xiàn),參加工作坊近一年后的人員的 SwiftUI 專業(yè)知識(shí)比沒(méi)有參加工作坊的人員高出了 8%。


    SwiftUI 的相關(guān)發(fā)現(xiàn)

    代碼行數(shù)


    鑒于愛(ài)彼迎有數(shù)百萬(wàn)行的 iOS 代碼,我們對(duì) SwiftUI 減少構(gòu)建 UI 所需代碼量的潛力感到非常興奮。在我們進(jìn)行的一項(xiàng)早期實(shí)驗(yàn)中,我們重新編寫了評(píng)論卡片,并發(fā)現(xiàn)代碼行數(shù)減少了 6 倍 - 從 1121 行減少到僅剩 174 行代碼!在過(guò)去的兩年里,隨著我們對(duì) SwiftUI 的應(yīng)用不斷推進(jìn),我們看到了類似幅度的代碼行數(shù)減少。


    性能


    在評(píng)估 SwiftUI 時(shí),UI 性能是一個(gè)重要的關(guān)注點(diǎn)。幸運(yùn)的是,經(jīng)過(guò)多次實(shí)驗(yàn)驗(yàn)證,我們發(fā)現(xiàn)在使用 SwiftUI 時(shí)的頁(yè)面性能分?jǐn)?shù)與 UIKit 實(shí)現(xiàn)相當(dāng)。雖然在實(shí)例化 UIHostingController 時(shí)有一些小的開(kāi)銷,但通過(guò)向 Epoxy添加一個(gè)復(fù)用的 Hosting Controller 池,我們成功地減少了這個(gè)開(kāi)銷。


    SwiftUI 的普及和開(kāi)發(fā)者滿意度


    由于公司內(nèi)部對(duì) SwiftUI 的熱情,該框架的應(yīng)用進(jìn)展迅速。我們的 SwiftUI 組件構(gòu)建有限試點(diǎn)始于 2022 年 1 月,隨后于同年 5 月擴(kuò)大推廣。而對(duì)于完整頁(yè)面的 SwiftUI 構(gòu)建,試點(diǎn)階段在 2022 年 10 月開(kāi)始,然后于 2023 年 1 月正式推出。

    截至九月,我們已經(jīng)擁有超過(guò) 500 個(gè) SwiftUI 視圖和大約 200 個(gè) SwiftUI 頁(yè)面。其中許多頁(yè)面都完全使用 SwiftUI 實(shí)現(xiàn),這些頁(yè)面已經(jīng)在愛(ài)彼迎 2023 年的夏季發(fā)布會(huì)的版本中使用。


    愛(ài)彼迎產(chǎn)品中 SwiftUI 組件和頁(yè)面的增長(zhǎng)


    愛(ài)彼迎的 iOS 工程師對(duì) SwiftUI 非常滿意。在最近的一次調(diào)查中,77% 的受訪者表示 SwiftUI 提高了他們的效率。許多受訪者提到,隨著更多使用 SwiftUI 的經(jīng)驗(yàn),他們的效率得到了進(jìn)一步提高,包括那些在一開(kāi)始認(rèn)為 SwiftUI 會(huì)降低他們開(kāi)發(fā)效率的人。調(diào)查中所有的受訪者都表示 SwiftUI 沒(méi)有對(duì)其產(chǎn)品功能的質(zhì)量產(chǎn)生負(fù)面影響,一些受訪者還表示 SwiftUI 提高了他們的代碼質(zhì)量。


    挑戰(zhàn)


    盡管整體上轉(zhuǎn)向 SwiftUI 已經(jīng)取得了重大成功,但我們也遇到了以下挑戰(zhàn):

    • 雖然 Swift 及其相關(guān)底層代碼已經(jīng)開(kāi)源,但 SwiftUI 的實(shí)現(xiàn)仍然是黑盒。如果 SwiftUI 開(kāi)源,我們可以更好地理解框架并進(jìn)行更有效的調(diào)試。
    • 我們對(duì) SwiftUI 的未來(lái)發(fā)展了解有限,目前只能通過(guò)每年一次的開(kāi)發(fā)者大會(huì)來(lái)了解其進(jìn)展。如果我們能更清楚地了解 SwiftUI 的發(fā)展方向,我們可以更好地確定應(yīng)用它的重點(diǎn)并知道在定制化解決方案方面做哪些努力。
    • 愛(ài)彼迎支持最新的兩個(gè) iOS 版本 App。如果較新的 SwiftUI API 能夠向舊版本的 iOS 進(jìn)行回溯兼容,我們可以更快地利用強(qiáng)大的新功能,并減少編寫回退方案的時(shí)間。
    • 為了完全棄用 UIKit,我們需要一套支持自定義過(guò)渡效果和導(dǎo)航模式的 SwiftUI API。
    • 我們?cè)谑褂?LazyVStack 和 ScrollView 時(shí)遇到了一些挑戰(zhàn)和限制,包括:
      • 插入、刪除和更新動(dòng)畫的確可能會(huì)遇到一些問(wèn)題。
      • 對(duì)屏幕外單元格的預(yù)加載以及圖片或數(shù)據(jù)的預(yù)加載可能會(huì)受到一些限制。
      • 當(dāng)視圖離開(kāi)屏幕時(shí),某些狀態(tài)可能會(huì)被重置。
    • 在 SwiftUI 中,文本輸入的 API 確實(shí)沒(méi)有完全支持 UIKit 的所有功能。這導(dǎo)致工程師們需要通過(guò)與 UIKit 進(jìn)行橋接來(lái)獲取一些額外的功能。
    • 我們向 Apple 進(jìn)行的 18 個(gè)相關(guān)反饋,其中記錄了我們遇到的 SwiftUI 的錯(cuò)誤或改進(jìn)建議。


    總結(jié)


    盡管面臨這些挑戰(zhàn),但在愛(ài)彼迎對(duì) SwiftUI 的謹(jǐn)慎應(yīng)用過(guò)程中,我們總體上的經(jīng)歷還算順利。通過(guò)重建我們的界面設(shè)計(jì)體系、重視培訓(xùn)普及,并提供與現(xiàn)有框架的無(wú)縫集成,我們提高了開(kāi)發(fā)速度和開(kāi)發(fā)者滿意度,同時(shí)保持了高質(zhì)量的標(biāo)準(zhǔn)。我們對(duì) SwiftUI 的持續(xù)發(fā)展并在我們的應(yīng)用中能支持更多的體驗(yàn)感到興奮!



    作者:Bryn Bodayle

    譯者:Jun Luan

    來(lái)源:微信公眾號(hào):愛(ài)彼迎技術(shù)團(tuán)隊(duì)

    出處:https://mp.weixin.qq.com/s/AokW7NZvjBT76iaRnEnsOA

    ello,大家早上好,又是元?dú)鉂M滿的一天,先來(lái)瀏覽新鮮的早報(bào)吧~

    【傳特斯拉將于1月維持上海工廠減產(chǎn)計(jì)劃】

    據(jù)悉,特斯拉將于2023年繼續(xù)維持其在上海工廠的減產(chǎn)計(jì)劃。根據(jù)一份內(nèi)部時(shí)間表,特斯拉將在1月3日至19日期間生產(chǎn)17天,然后在月底停止生產(chǎn),以延長(zhǎng)農(nóng)歷新年假期。特斯拉此前曾否認(rèn)有關(guān)減產(chǎn)的報(bào)道,稱12月初報(bào)道的細(xì)節(jié)“不真實(shí)”。特斯拉沒(méi)有回應(yīng)就最新報(bào)道置評(píng)的請(qǐng)求。

    【中國(guó)國(guó)航與國(guó)鐵集團(tuán)合作推出空鐵聯(lián)運(yùn)產(chǎn)品】

    中國(guó)國(guó)際航空公司與中國(guó)國(guó)家鐵路集團(tuán)有限公司27日舉辦“融合發(fā)展暢行地空”中國(guó)國(guó)航與國(guó)鐵集團(tuán)合作暨空鐵聯(lián)運(yùn)產(chǎn)品發(fā)布會(huì)。發(fā)布會(huì)上,雙方對(duì)共同合作的項(xiàng)目進(jìn)行了發(fā)布,并介紹了全新推出的國(guó)航國(guó)鐵空鐵聯(lián)運(yùn)產(chǎn)品。未來(lái),雙方還將繼續(xù)在產(chǎn)品設(shè)計(jì)、便捷換乘、數(shù)據(jù)共享、服務(wù)保障、制度標(biāo)準(zhǔn)等領(lǐng)域深化合作,優(yōu)化完善,進(jìn)一步提升空鐵聯(lián)運(yùn)服務(wù)水平。

    【榮耀CEO趙明:對(duì)明年的市場(chǎng)發(fā)展持謹(jǐn)慎樂(lè)觀態(tài)度】

    榮耀CEO趙明發(fā)表對(duì)于明年市場(chǎng)的看法:今年對(duì)所有廠家和品牌來(lái)講都是壓力非常大的一年,各個(gè)廠家都在積極地調(diào)整,未來(lái)還是充滿希望的。對(duì)于后續(xù)市場(chǎng)的發(fā)展,總體是持謹(jǐn)慎樂(lè)觀的態(tài)度。

    【申通快遞擬以4500萬(wàn)元~5500萬(wàn)元回購(gòu)股份】

    申通快遞昨日還發(fā)布公告稱,公司擬使用自有資金通過(guò)集中競(jìng)價(jià)的方式回購(gòu)公司股份,回購(gòu)資金總額不低于4500萬(wàn)元且不超過(guò)5500萬(wàn)元(均含本數(shù)),回購(gòu)價(jià)格不超過(guò)15元/股(含本數(shù)),預(yù)計(jì)可回購(gòu)股數(shù)300萬(wàn)股-366.66萬(wàn)股,約占公司目前總股本的0.20%-0.24%。此次公司擬使用自有資金回購(gòu)部分股份用于股權(quán)激勵(lì)計(jì)劃或員工持股計(jì)劃。

    【B站:第二、第三季度,豎屏視頻的日均播放量均同比增長(zhǎng)400%以上】

    B站舉辦2022 AD TALK營(yíng)銷伙伴大會(huì)。據(jù)B站副總裁劉智介紹,過(guò)去一年,B站的商業(yè)化基建已逐漸完善,廣告效率大幅提升。B站上線了多種轉(zhuǎn)化能力,包括直播帶貨、UP主藍(lán)鏈帶貨、活動(dòng)頁(yè)、下載頁(yè)等,為品牌提供從曝光到轉(zhuǎn)化的完整鏈路。其中,Story-Mode豎屏視頻廣受用戶歡迎,2022年第二、第三季度,豎屏視頻的日均播放量均同比增長(zhǎng)400%以上。豎屏視頻廣告互動(dòng)率是橫板廣告的五倍。

    【最高法:不得以商品已拆封為由主張不適用七日無(wú)理由退貨制度】

    最高人民法院27日發(fā)布關(guān)于為促進(jìn)消費(fèi)提供司法服務(wù)和保障的意見(jiàn)。意見(jiàn)明確,消費(fèi)者因檢查商品的必要對(duì)商品進(jìn)行拆封查驗(yàn)且不影響商品完好,電子商務(wù)經(jīng)營(yíng)者不得以商品已拆封為由主張不適用七日無(wú)理由退貨制度。

    【愛(ài)彼迎中國(guó)發(fā)布2023年“開(kāi)春”計(jì)劃】

    愛(ài)彼迎官方新聞賬號(hào)發(fā)布消息,“乙類乙管”總體方案官宣,2023年1月8日起取消入境后集中隔離。借此契機(jī),Airbnb愛(ài)彼迎發(fā)布2023年出境游“開(kāi)春”計(jì)劃,助力中國(guó)出境游復(fù)興。據(jù)介紹,2023年出境游“開(kāi)春”計(jì)劃主要分為5部分。首先,在供給端,愛(ài)彼迎全球超600萬(wàn)個(gè)活躍房源和體驗(yàn)已翹首以待中國(guó)旅行者的到訪。

    【天貓首次取消跨店滿減,改為價(jià)格直降】

    天貓?jiān)谄湟荒暌欢鹊哪曦浌?jié)活動(dòng)中,首次取消了“跨店滿減”,改為所有活動(dòng)商品采用“官方立減”的價(jià)格直降方式,不需湊單即可享受優(yōu)惠。從今年618開(kāi)始,天貓?jiān)噲D簡(jiǎn)化其面向用戶的優(yōu)惠玩法,陸續(xù)取消了定金膨脹、指定疊加條件折扣、滿減等。

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有