Just a Computer Graphics Studio & My Life

Posts tagged ‘architecture’

MVC與MVP

已經寫超過三年半的iOS App,一直以為自己對MVC很熟,但其實不然,畢竟我一直不是用正規的MVC來實作,相信大多數的iOS App開發者也有類似的煩惱XD~

不過沒有寫得很標準,其實不會怎樣,大不了專案難以維護,接手你程式的工程師想要翻桌,這是每位稱職工程師的必經之路!於是我們會學習會成長,然後寫出更好的架構來。

最近技術委員會決議要統一iOS和Android的專案程式架構,由我們最資深的工程師楊大決定從MAC進展到MVP

MVC與MVP.gif

有了這張對照圖,就能很清楚MVC與MVP的差別!最關鍵的地方就在View和Model不互通有無的三角戀情。

(繼續閱讀…)

Advertisements

[iOS][Watch OS] Watch OS 1 與 Watch OS 2 架構

才剛結束的2015年WWDC,宣布了Watch OS的誕生,而且馬上就是Watch OS 2!這跟過去一年的Watch OS 1有著非常大的差別,不過為了簡單起見,我們就先直接瞭解關鍵的差異,也就是Watch OS 1 與 Watch OS 2 架構

Watch OS 1架構可以參考我先前寫的Watch App Architecture

architecture watch OS

乍看之下只是把WatchKit Extension從iPhone移轉到Apple Watch,可是事實上要做的功夫可是很多很大~

(繼續閱讀…)

[iOS] Watch App Architecture

在瞭解Watch App目標架構後,我們想進一步瞭解:

  • Apple Watch與iPhone溝通
  • Watch App的運行流程
  • ViewController的生命週期

Apple Watch與iPhone溝通

Watch iPhone commucation

包含兩部分:Watch appWatchKit extension。Watch app在Watch上運行,只包含Storyboard和Resource;WatchKit extension在iPhone上運行,與對應的iPhone App在一起。當使用者點擊Watch App後,與Watch配對的iPhone會啟動WatchKit extension,然後與Watch建立連接,於是兩者可以溝通(如獲取資料等)。

(繼續閱讀…)

[iOS] Apple Watch 目標架構

開發Watch App時,所要注意的角色有三個,因為Watch App無法獨自運行,需要透過iOS App來啟動與操作它,而彼此溝通的橋樑則是WatchKit Extension。我們可以很清楚地從下圖得知三個角色的關係:

watch app target structure

使用Xcode 6.2開發Watch App時,原本的專案就是iOS App,操作順序:New->Target->Apple Watch->WatchKit App,便會同時產生WatchKit App與WatchKit Extension到專案中。WatchKit App僅含Storyboards與Resources,WatchKit Extension則含WatchKit Code與Resource。

new target watchkit app

據知未來Watch App可獨立運行,就讓我們拭目以待吧!

參考:Apple Watch开发初探

[Xamarin][iOS] 深度了解專案:電話字 (Sample Project: Phoneword)

承接範例專案:電話字 (Sample Project: Phoneword),再來就是解釋它怎麼運作,包含Xamarin介面C#程式碼,還有很重要的是Xamarin.iOS Application的剖析。

Xamarin iOS Application03

  • References – Contains the assemblies required to build and run the application. If we expand the directory, we’ll see references to .NET assemblies such as System , System.Core, and System.Xml , as well as a reference to Xamarin’s Xamarin.iOS assembly.
  • Components – The Components directory houses ready-made features from the Xamarin Components store , a public marketplace for Xamarin code. This is similar to the NuGet Gallery for those familiar with Visual Studio. For more information on Xamarin Components, refer to the Xamarin Components walkthrough .
  • Resources – The Resources folder stores icons, launch images, and other media. Xamarin has a separate guide for Working with Resources that explores the role of this directory further.
  • Main.cs – This contains the main entry point of the application. To start the application, we pass in the name of the main application class, the AppDelegate .
  • AppDelegate.cs – This file contains the main application class and is responsible for creating the Window, building the user interface, and listening to events from the operating system.
  • MainStoryboard.storyboard – The Storyboard contains the visual design of the application’s user interface. Storyboard files open in a graphical editor called the iOS Designer.
  • Phoneword_iOSViewController.cs – The View Controller powers the screen (View) that a user sees and touches. The View Controller is responsible for handling interactions between the user and the View.
  • Phoneword_iOSViewController.designer.cs – The designer.cs is an auto-generated file that serves as the glue between controls in the View and their code representations in the View Controller. Because this is an internal plumbing file, the IDE will overwrite any manual changes and most of the time we can ignore this file. For more information on the relationship between the visual Designer and the backing code, refer to the Introduction to the iOS Designer guide.
  • Info.plist – Info.plist is where we set application properties such as the application name, icons, launch images, and more. This is a powerful file and a thorough introduction to it is available in theWorking with Property Lists guide.
  • Entitlements.plist – The entitlements property list lets us specify application capabilities (also called App Store Technologies) such as iCloud, PassKit, and more. More information on theEntitlements.plist can be found in the Working with Property Lists guide. For a general introduction to entitlements, refer to the Device Provisioning guide.

看起來和Xcode裡的檔案架構很類似呢!學習來格外輕鬆~

(繼續閱讀…)

[iOS] ARM架構與i設備的關係

一些專案設定要慢慢開始瞭解,特別是Build Settings有許多細節,跟APP運行的環境相關。

iOS ARM架構與i設備的關係

此截圖為某HappyLife專案Build Settings中Architectures的部分,開發界面是Xcode 5 beta。

(繼續閱讀…)

師大投影藝術

就在今天晚上五點到八點,國立台灣師範大學上午舉行藝文頂大成果展,將在戶外以投影技術呈現新媒體藝術創意,彙整科技藝術學程學生的成果展出,讓校內的行政大樓變成大型光畫藝術品。

師大投影藝術  (1)

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: