2017年10月14日 星期六

如何邁向iOS APP工程師 & Swift分享 (一)

目前本身職業是APP開發工程師(iOS, android)早期接觸iOS的時候還只有Objective-C,所以在Swift領域中也算是新手學習當中,想在這就自己邊學的心得邊與大家分享,大家一起來研究Swift

目標打算在分享的過程中漸漸帶領大家做出一些東西,雖然主要是在Swift方面的分享,但當中也可能分享一些Objective的觀念來對照

現在,就開始第一次的分享吧,第一次分享中只大概介紹如何從一個非iOS的工程師踏入這個領域

第一次分享內容
1. 對iOS開發語言有基本認識 (Objective-C, Swift 3.0)
2. 對第三方開發工具有基本認識 (Cocos2d-X, Xamarin)
3. 對iOS開發工具—Xcode有基本認識
4. 如何建立一個新專案並執行專案
5. UI設計介紹(Storyboard, XIB and Hard Code)
6. Swift 3.0 語法開發教學


最終分享目標
可實作出一個簡單的App並執行且可以上架


成為一名iOS工程師的準備    
一定要具備的 (這邊皆是以原生開發來說)
(1)一台Mac電腦(Macbook Pro, Macbook air)最便宜為28,900左右
(2) Xcode開發工具(Apple官方開發工具)免費
(3) Apple開發者帳號(測試與發佈用)最便宜一年3400
結論:  成為一名iOS工程師之前 你要先有$3,6000左右

iOS App 官方原生開發語言
Objective – C : 一個由C語言擴展 內涵SmallTalk訊息傳遞風格,Ojective – C中可以完全用C語言來編寫

Swift : Apple自開發的語言 JavaScript的人對Swift可能會比較容易上手因有些語法很像..例如: var, let… (但意義可能不一樣)


Swift 與 Objective – C 之差異
1.Swift取消了Objective-C的指標 ex:
ObC:  NSString *str = @"hello";
Swift: var str = "hello";
2. Swift不再需要標頭檔(Header files)OBC一定要有hm (除非你只是宣告變數 則只需要h)
3.在switch 的區塊內不需要再使用 break 敘述句
4. Swift支援Playground(一種即時顯示執行結果的工具且只支援Swift語系)
PS: 以上只列出差異較為明顯的部分

如果我沒有上述必備那些 但又真的很想開發iOS Appe該如何?    
ANS: 用非原生的工具和語言
工具: Cocos2d-X(免費), Unity 3D(免費+付費), Xmarine(付費)
語言: C++, C#, Lua, JavaScript, Html5
以上就先為大家稍微介紹一下如何進入iOS的領域,下次的分享中就會開始進入Swift的分享中喔~ 

PS: 上述工具中寫過Unity與Cocos2d-x,所以如果有想一起討論這兩個的也歡迎喔~ 

2017年10月13日 星期五

iOS程式前置詞的介紹

這一篇主要是介紹iOS相關程式(例如Swift、Objective-C、Sprite Kit…etc)等常看到的前置詞的說明

因為曾經在面試的時候被人問到知不知道NS所代表的意義所以在此與大家分享一下一些比較常見的前置詞

NSxxxx: NeXTSTEP, 例如NSString, 主要用在Objective C
SE: Swift-Evolution
GKxxxx: Game Kit, 例如GKScore, iOS製作遊戲時使用的
SK:xxxx Sprite Kit, 例如SKView, 是iOS製作2D遊戲時使用的
SCNxxxx Scene Kit, iOS製作3D遊戲時使用的
GLKxxxx GLK Kit, 主要用在圖形處理上

參考網址: 

2017年10月12日 星期四

iOS Swift UITextField的應用

本篇主要是分享iOSUITextField的應用使用的語言是Swift 

例如想要取得目前鍵盤的輸入語系的話可以用

let language: NSString = textField.textInputMode!.primaryLanguage!

而如果想要知道UITextField中是否含有英文字母可以使用

let checkLetters :NSMutableCharacterSet = NSMutableCharacterSet.init()
        checkLetters.addCharactersInString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")

let myString2 = inputTextField.text! as NSString
myString2.rangeOfCharacterFromSet(checkLetters).location != NSNotFound

範例中也包含如何限定取UITextField的字串長度(本範例為取6位元數)

最後則是提供完整的範例參考, 本範例只是一些簡單的運用, 如果想要知道更多的技術應用歡迎一起討論喔~ 

2017年10月11日 星期三

論職場英文的重要性

常聽到有人會說我工作上幾乎不會用到英文所以英文對我來說並沒有用其實這是一個錯誤的概念以我個人舉例我的工作是資訊相關的主要內容是開發各類App

其實單純以工作來說的話,我的工作確實也是沒有機會用到英文的可是當我們遇到一些技術上的問題而在網路上尋找答案的時候可以發現有些實用的解答是以英文來表達的..(舉例: https://stackoverflow.com)..

所以如果你多會英文的話其實是可以多接收到一些資訊的加上有時如果公司業務上有機會拓展到接觸國外的項目的話這時候如果你會英文可以大大的為你的專業加分喔...

所以還是建議大家不管目前工作上有沒有用到英文在閒暇之餘還是別忘了提升自己的英文能力喔~ 

2017年10月10日 星期二

面試的建議與注意事項

今天與大家分享面試的一些建議與注意事項 ,自己也曾面試過工作而也曾擔任過面試別人的角色,所以在此分享一些所看到的事件與建議,當然不一定是正確的,畢竟還是要看每一個面試官在乎的點,但也可以當作一個參考

一. 了解你所要面試的公司的性質
我曾經遇到一些面試者,我問他們說你知道我們公司是在做什麼的嗎?而他們竟然回答"不知道",其實這樣會嚴重的影響你被錄取的機率,因為表示你沒有很用心的去了解你所面試的公司,而且會讓人覺得你只是在亂槍打鳥的亂投履歷,而通常我聽到回答這樣的人幾乎都是不會錄取了,除非他後來在其他的表現讓我覺得驚艷才有可能逆轉..但通常是一個連自己要面試的公司是在做什麼都不知道的人也很難期待他會有什麼驚豔的表現(這邊是以我個人碰過的經驗而言,並非指所有..),所以,請務必事先了解你所面試的公司是個什麼樣性質的公司!

二. 履歷專長不要寫一,除非你寫的都是真的你所精通的
在我面試的人當中,我也看過有些人會寫一堆專長..例如Java, C#, C++, MS SQL, PL SQL, Windows, Linux....從程式語言到資料庫甚至網路安全與作業系統全都曩括在內...我了解他們的心態,認為這樣會讓別人感覺自己懂很多東西...但其實這是不必要而且可能造成反效果的..在履歷上只需要列出你應徵該職缺所需的技能,例如你面試的是App工程師,那你就寫Swift或是android,然後再加上一些"你真的熟悉"的專業技能,例如資料庫或其他...有時寫太多只會讓人覺得你是灌水或是都是一知半解...所以,在此建議履歷上的專長只需要寫出與你面試的職缺有相關的技能且是你真的熟悉的~ 

三. 如果有作品請記得攜帶作品,如果沒有,至少也準備好分享你在該領域中的經驗,但要確保的是你所帶的作品是你真的值得拿出來分享並且沒有問題的
作品不是絕對需要,但通常可為你加分或至少讓人家知道你在這方面是具備能力的,但這邊要提醒的是...好的作品可以為你帶來加分,同樣的,不好的作品可能也會為你帶來扣分,我也曾遇過面試者帶來的作品..在展示的時候當場當機(Crash)...當時場面有些尷尬...所以,請在面試前多次操作確認你的作品是沒有問提的!

四. 針對你所面試的職缺去搜尋面試考題並準備相關知識
並非每家公司都一定會有測驗(其實我個人不喜歡對面試者考試),但許多小的軟體公司(尤其是南部,這邊一樣是依據我自己的經歷來說..)特別喜歡考試..所以,如果今天你是要面試android的工程師..那麼請上網搜尋相關的面試考題..請不要在沒有任何準備之下就上面試的戰場~ 

五. 做人要老實,但有時為了大業(生存),"小小的"不老實是需要的
我曾聽過其他單位的面試官這樣聊天..
某A面試官: 剛剛那個面試者考題只寫了一兩題..其他的都沒寫...
某B: 啊? 那只能說他很老實..連作弊都不會~ 

通常有考試的職缺都不會有面試官在那盯著你寫完(如果真遇到了就認了吧)...所以,當你遇到真的不會寫的題目時..為了大業(你的飯碗)請試著用其他的方式找到解答..(例如用手機上網找答案)...相信我..你因為不會就沒寫不會讓人覺得你很老實是優點..只會讓人覺得你不專業而且連嘗試找答案都不會..有些人可能會不認同我的說法..認為不會就是不會..作弊如果被發現不是一樣沒結果嗎..那我只能說..孩子~ 表示你面試的經驗還不夠多...所以,當遇到不會的題目時請不要猶豫,拿出你的手機拜訪大神尋求解答吧~ 

六. 服裝禮儀要注意
或許你是個鬼才,或許你有自己的行事風格並且你很堅持,也或許你認為大丈夫行事不拘小節...但還是建議你面試的時候就為了那幾小時委屈自己一下吧因為在彼此都還不認識對方的情形之下..面試官看不到你那深藏的驚世才華,卻看得到你當下的服裝儀態..你想像一個畫面,一個面試者穿著海灘褲和拖鞋戴著墨鏡坐在你面前..相信我,你只會以為他走錯地方了並且好心的告訴他正確的海灘在哪個方向請他前往.....(意思是掰掰不用再聯絡 XD)所以,雖說不用到穿西裝打領帶或是洋裝禮服等..但至少要乾淨整齊並且不至於太居家(例如穿拖鞋),再來就是禮儀..看到面試官進來時即便不用起身彎腰,但至少要記得微笑打個招呼,還是那句..當彼此都還不了解對方時,能先觀察的就是你外在的儀態舉止~ 

2017年10月8日 星期日

建立Blog的第一天

10/8是建立個人Blog的第一天所以發表第一篇文章記錄紀念一下

未來將會陸續的分享自己的專業知識或是生活記事~ 

解決iOS 14上如果更換預設瀏覽器(例如從Safari換成Chrome)時, 用Scheme架構會無法回到上一頁的問題

 如果遇到以下問題時 須在Info裡的LSApplicationQueriesSchemes裡設定多增加https, 如下圖: