I'm a mother of two precious kids and a professional programmer.
我的新書AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題的教材投影片已製作完成
歡迎各位有需要的教師和博碩文化索取教材
作業目標:http://www.youtube.com/watch?v=azplcMbuoQ4&feature=youtu.be 練習檔案:homework0831 先介紹一下UIWebView UIWebView的資料來源主要有三者: 本機上的HTML字串 本機上的資料 + MIME type 遠端的URL 這邊有中文的介紹:http://www.inside.com.tw/2010/03/14/cs193p-lecture-12 作業練習開始 首先我先拉出storyboard 然後我練習使用程式去產生UINavigationController,這是在AppDelegate.m裡 然後ViewController.h裡在viewDidLoad時初始化一些頁面數值 實作按鈕按下時的動作 接下來做WebViewController.m裡的內容, 在這邊我弄了一個下載進度的物件叫作UIActivityIndicatorView 這部份首先要先在- (void)viewDidLoad裡初始化載入效果 然後加上下面兩段程式碼 然後在實做UIWebView的Delegate去設定載入畫面 [UIApplication sharedApplication].networkActivityIndicatorVisible這個是在上方指示列的圈圈圖示 遇到問題(高手幫忙看3Q)…
畫面繪製工具: Balsamiq Mockups 參考規範: iPhone-HIG(人機界面指南) 企劃圖片下載: APP開發 名稱:94愛吃 類別:生產力應用程式 分類:美食 簡介: 想揪三五好友去吃某間超好吃的餐廳時,卻總是忘了餐廳的詳細資訊嗎? 想找一間適合談公事的餐廳,卻又一時想不起究竟那裡適合嗎? 這一款APP可以幫助你記錄曾吃過的餐廳,以及想吃卻還未去吃的餐廳。 也可以以地圖的方式,去告訴你這附近有那些你吃過的餐廳可以去吃。更能提供你最新、最酷的焦點餐廳情報。 如果你是美食愛好者,那不能錯過這一款APP唷! 畫面截圖 因為是第一款APP,不知道這樣會不會觸犯到APP的上架條款 應用程式涉及了裸體、暴力、中傷他人 違反商標法 功能過於簡單或與iOS內建功能動覆 使用未開放的API 應用程式Bug、當機且無任何警告訊息 違反HIG(Human Interface…
表格視圖,文字視圖和Web視圖 狀態欄:狀態欄顯示與使用者裝置相關的重要資訊,包括電話信號強度,當前網路連接和電量資訊。 導覽欄:導覽欄位於應用程式螢幕的上邊緣,在狀態欄之下。導覽欄通常會顯示當前視圖的標題,包含導覽控制元件,並在適當的情況下也可以包含作用於視圖內容的控制元件。 工具欄:如果您的應用程式為使用者提供了一系列可在當前上下文中執行的動作,那麼您可以為使用者提供一個工具欄。工具欄的外觀要力爭與應用程式中的其它欄目的外觀保持一致。例如,如果您使用半透明的工具欄,就不要將它與不透明的導覽欄一起使用。此外,請避免在同一方向的不同螢幕中改變工具欄的顏色或半透明效果。 標籤欄:標籤欄使使用能夠在應用程式的不同模式或不同視圖之間進行轉換,並且使用者應該能夠從應用程式的任何地方進入這些模式。 在應用程式螢幕中使用視圖和控制元件 表格視圖:裡面包含許多元素,並可以使用表格視圖實現常用的使用者操作。如:選項列表;導覽層次資訊;查看按概念分組的資訊 有幾個表格操作元素: 展開指示符:當這個元素出現時,使用者知道他們可以點選這一行中的任意位置來查看下一級的資訊,或是與當前列表項相關的選項。 當選中一行後會顯示另一個列表時,應使用展開指示符。不要使用展開指示符來顯示某個列表項的詳細資訊;這種情況下應使用詳細資訊展開按鈕。 詳細資訊展開按鈕:使用者可以通過點選該元素來查看某個列表項的詳細資訊。在表格視圖中,可以在某一行中使用詳細資訊展開按鈕,來顯示與該列表項相關的詳細資訊。請注意,與展開指示符不同,詳細資訊展開按鈕所執行的動作可以獨立於行的選擇動作。 刪除按鈕:使用者通過點選該元素可以刪除對應的列表項。 刪除控制按鈕:使用者通過點選該元素可以顯示或隱藏每個列表項的“刪除”按鈕。 行插入按鈕:使用者通過點選該元素可以向列表中新增一行。 行排序控制元件:當該元素出現時,使用者可以拖動一行到列表中的另一位置上。 選定符號:該元素出現在列表項的右側,表明該項當前被選中。 開關控制元件 文字視圖 Web視圖:Web視圖是應用程式螢幕上可以顯示豐富的HTML內容的一片區域。除了顯示web內容之外,web視圖還提供了一些元素來支援使用者瀏覽開放的網頁。雖然您可以選擇向使用提供網頁瀏覽功能,但是最好避免讓您建立的應用程式看起來像是一個小型web瀏覽器。 應用程式控制元件 活動指示器:活動指示器表示有一項持續時間未知的任務或過程正在進行當中。(請參考UIActivityIndicatorView類) 日期時間選擇器:日期時間選擇器為使用提供了一種簡單的選擇特定日期或時間的方式。(請參考UIDatePicker類) 詳細資訊展開按鈕:詳細資訊展開按鈕提供了關於某一項的額外資訊或更詳細的資訊。(參考UIButton類) 資訊按鈕(參考UIButton類) 標籤:標籤是一種大小可變的靜態文字。(參考UILabel類)…
中文版下載:iPhone-HIG(人機界面指南) 英文版下載:MobileHIG HIG(人機界面指南)是apple在審核app時,給開發者去參考的條文, 只要想要在ios平台上開發app的開發者,在上架時,都必需同意自己的應用程式符合裡面的規範。 這也是app開發者在開發完APP後,常常會被apple退件的原因。 因此建議有志要開發iphone app的人可以在開發前先研讀一下這本規範手冊。 HIG將應用程式分類成三大類型 生產力應用程式:幫忙使用者管理資訊及完成工作。資訊是階層架構的,可以透過向下深入更多層級而瀏覽更多資訊。 效率型應用程式一般採用多個視圖,通常每一視圖顯示一個層次的資訊。使用介面通常簡單,整潔且由標準視圖和控制元件組成。效率型應用程式通常沒有很多自定義介面。原因在於效率型應用程式專注於資訊和任務,而非環境或體驗。 融入式應用程式:遊戲是典型的例子,這種應用程式使用非常客製化的介面,讓使用者與裝置互動,HIG對這種應用程式的規範比較不那麼嚴格。 使用者的焦點在於視覺上的內容和體驗,而非體驗背後的數據。 工具應用程式:透過盡可能少的互動與組態設定提供使用者特定的資訊。這種APP通常比生產力應用程式有更多的介面且更加被要求要符合HIG規範。 實用型應用程式俱有視覺上的吸引力,但是又能夠突出它們顯示的資訊。使用者使用實用型應用程式來查看一些事情的狀態或是查找一些東西,所以使用者希望能夠快速方便地看到他們感興趣的資訊。因此,實用型應用程式的使用者介面十分簡潔,並提供簡單的,標準的視圖和控制元件。 實用型應用程式一般以平面列表的方式顯示資訊;使用者通常不需要深入資訊層次結構。實用型應用程式中的每一個視圖通常都提供同樣的數據組織結構和細節深度,但是數據來源可以不同。由此,使用者可以打開單個實用型應用程式以對多個主題進行相似處理。一些實用型應用程式能顯示打開的視圖的數量;由此使用者可以按順序瀏覽,在一個視圖後選擇另一個視圖。(例如下圖使用者可以用上一層的設定界面讓下一層的天氣資料顯示不同地區的資訊) 開發APP時要注意的點 畫面比電腦小很多:應考量將複雜的畫面簡化 記憶體有限:因為ios的記憶體不包括磁碟交換空間,所以在app開發時要注意不能同時使用太高的記憶體,ios在記憶體不足時,也是會從耗記憶體最高的app開始關閉。 每次只能顯示一個視窗:不能同時瀏覽多個視窗,只可以依序瀏覽。 同一時間只能運行一個程式:因為當接電話、切到另一個應用程式等,現有的應用程式將被關閉。應要注意在使用者離開再回來時的畫面順暢度。 簡單易懂的操作說明 人機介面準則 當使用者操作螢幕上的對象時,這些對象保持可見,並且操作結果是一目了然的。 讓使用者做出選擇,而不是要求他們進行開放式的輸入,這樣能夠讓使用者能夠集中精力通過您的程式完成任務,而不是疲於記憶如何操作。 如果有一個動作,使用者需要長時間的等待,應該回饋一個音效或圖案。在完成資料下載時,也應讓使用者知道動作已完成。應隨時回饋使用者,讓他能了解現在系統正在做什麼。…
練習目標:http://www.youtube.com/watch?v=xiHBN2B1Vt4&list=UUPRP4bs_BNpx6XWI5Wm7O5g 老師範例:DrawSomething 我的作品:homework0810 在這個範例中,我使用了兩個viewController,去控制兩個頁面的畫面。 第一個用來顯示動畫的地方的viewController如下, 在這個頁面上除了球之外,還會有一個控制開關的鈕,當打開時代表不去管路徑如何直接讓球到圓點, 而關閉則會讓球一步步照著所繪的路線移動。 #import “ViewController.h” @interface ViewController () @property (weak, nonatomic) IBOutlet UISwitch *straightSwitch; @property (weak, nonatomic) IBOutlet UIImageView *myBall; @end…
作業目標:Youtube操作影片 練習原始碼:homework0803 這個作業主要是在練習對view以及簡單的繪圖的操作,還有timer的使用 因此我截錄一些我覺得是練習關鍵的程式碼 下面的是viewController的相關程式碼 一個個出現的程式碼,按下show按鈕時觸發 – (IBAction)showButtonClick { [self clearButtonClick]; [self.circleNumber resignFirstResponder]; total = [self.circleNumber.text integerValue]; index = 0; //設定間隔一個個產生circle [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(addItems:)…
view介紹 UIWindow是會在一開始便被xcode建立起來,裡面有很多view。 View的操作: 於上層操作subview: 在supervview裡是用MutableArray的index去管理subView,這index就是tag,tag=0是代表subview自己。 [self addSubView: view];//新增view [self insertSubView: view atIndex:0];//新增view在layer0 [self insertSubView:view belowSubview:upView];//新增view在upView之下 [self insertSubView:view aboveSubview:upView];//新增view在upView之上 [self exchangeSubviewAtIndex:0 withSubviewAtIndex:1];//將第0層的物件和第1層的調換 UIView view = [self…
切換UIViewController的兩種方式 1. 有NavigationController時 方法一:右側進入 SecondViewController* svc=[[SecondViewController alloc]init]; [self.navigationController pushViewController:svc animated:YES]; 返回到上一頁 [self.navigationController popViewControllerAnimated:YES]; 方法二:下面切入 SecondViewController* svc=[[SecondViewController alloc]init]; [self.navigationController presentModalViewController:svc animated:YES]; 返回到上一個UIViewController [self.navigationController dismissModalViewControllerAnimated:YES]; 2、没有NavigationController的切換方法 SecondViewController*…
source code在此:範例檔案下載AppPrototype 難得周日在家,就把昨天老師說的練習做完 老實說其實我弄很久(大概有八~九小時跑不掉= =) 可見真的很不熟悉,debug之類都超級慢的 首先就是在跳去圖表的地方, 原本在實作實際功能前可以正常出現圖表,後來不知為何會當掉, 光這個無聊的bug就找了兩三小時(遮臉) 後來發現是因為下面這段程式碼 -(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ InputViewController * inputCon = segue.destinationViewController; inputCon.delegate = self; } 因為只要是storyboard控制的頁面切換,都會呼叫prepareForSegue 我同時用storyboard去切換新增資料和圖表頁面,…
Naming Convention 命名原則: 具解釋性 清楚 不會混淆 類別名稱: 第一個字大寫 前置namespace(在新增專案時會有Class Prefix,就是在設定這個) 駝峰式的寫法 變數名稱 變數類型不需特別表明,可以用名稱去讓人聯想型別,例: BOOL isEditable; NSString * accountName; NSMutableArray * mailBoxes; UIImage * previewPaneImage; NSDictionary…
17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。
如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!