Показаны сообщения с ярлыком OS X. Показать все сообщения
Показаны сообщения с ярлыком OS X. Показать все сообщения

22 авг. 2016 г.

14 мар. 2016 г.

Создание шаблона (темплейта) файла для Xcode / Create Xcode source template


В Xcode любой версии при создании нового файла в проекте мы видим перечень готовых шаблонов исходных файлов, которые уменьшают написания стандартных, рутинных строк кода. Дальше будет более понятней что я имею в виду.

Например нам  нужно создать синглетон класс. Наши действия:
- Файл -> Новый -> Файл -> Соурс -> Свифт-файл (File -> New -> File -> Source -> Swift file)
- В новом файле написать код синглетона (хоть это всего лишь несколько строчек кода - это все-таки занятое время для шаблона)

import Foundation

class NewFile {

static let sharedInstance = NewFile()
private init(){}

}

Можем ускорить этот процесс создания, создав для Xcode шаблон синглетона, который будет присутствовать в списке шаблонов при добавлении нового файла в проект.

Шаблон состоит из имени и расширения (как обычный пакет в OS X): TemplateName.xctemplate

Сам пакет состоит из таких файлов:
- Иконка файла (48х48), формата *.png (включая @2х (96х96) для ретина дисплеев)
- plist-файл в котором описывается наш шаблон
- swift-файл с кодом нашего шаблона.

Приступим:

- Создадим папку с расширением шаблона: Swift Singleton.xctemplate:


Все следующие действия будут происходить в созданной нами папке-шаблоне

- Перейдем в папку и скопируем туда два файла-иконки (по которому мы в будущем будем ориентироваться что это наш шаблон синглетон). Плюнем на все свои правила и закинем туда обычные иконки свифт-файла:

- Создадим plist-файл и опишем наш шаблон (не буду вести подробный разбор каждого раздела, думаю что все предельно ясно из названий самих разделов):
Содержимое:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AllowedTypes</key>
<array>
<string>public.swift-source</string>
</array>
<key>DefaultCompletionName</key>
<string>File</string>
<key>Description</key>
<string>A Swift Singleton.</string>
<key>Kind</key>
<string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string>
<key>MainTemplateFile</key>
<string>___FILEBASENAME___.swift</string>
<key>SortOrder</key>
<string>5</string>
<key>Summary</key>
<string>A Swift Singleton</string>
</dict>
</plist>

- Переходим к содержимому нашего сердца шаблона - swift-файл:
Содержимое:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

import Foundation

class ___FILEBASENAMEASIDENTIFIER___ {

    static let sharedInstance = ___FILEBASENAMEASIDENTIFIER___()
    private init(){}
    
}

___FILEBASENAMEASIDENTIFIER___ - вместо этого идентификатора будет подставляться введенное имя юзером во время создания нового файла-синглетона. Остальные идентификаторы интуитивно понятны.

- Теперь осталось перейти: ~Library/Developer/Xcode/Templates/File Templates/

Папки Templates и File Templates нужно будет создать, т.к. они отсутствуют (если Вы не ставили шаблоны, например с помощью утилиты Alcatraz). File Templates - это не обязательное имя. Я для себя назвал User Templates.

- Осталось скопировать наш шаблон-папку по выше указанному пути, и создать новый файл в проекте. Теперь в списке разделов (для iOS) появится дополнительный наш раздел, где будет присутствовать наш шаблон-синглетон (Если что-то пошло не так, всегда можно перезапустить Xcode).


Вводим имя файла и наслаждаемся дальнейшей работой уже с готовым шаблоном.

Примеры шаблонов можно посмотреть в самом Xcode:   /Applications/Xcode.app/ Contents/Developer/Platforms/ iPhoneOS.platform/Developer/ Library/Xcode/Templates/ File Templates/Source

26 нояб. 2015 г.

Swift Algorithms & Data Structures



Author: Wayne Bishop
Length: 88 pages
Edition: 1st
Language: English
Publisher: Wayne Bishop
Publication Date: 2015
ISBN-10: 1320479243

Written for students and professionals, Swift Algorithms & Data Structures blends modern code, illustrations and computer science to help you pass the technical interview or build your next app. When creating modern apps, much of the theory inherent to algorithms is often overlooked. Swift Algorithms & Data Structures takes a fresh approach to explain concepts that power search engines, social networks and database systems.

Introduced by Apple in 2014, Swift is quickly becoming the language of choice due to its simplicity and modern syntax. See how Swift works to create solutions for everyday systems as well as mobile apps.

WHAT'S INSIDE
Based on the popular essay series, the book features Swift examples and beautiful illustrations for Linked Lists, Big O Notation, Sorting, Generics, Closures, Hash Tables, Binary Search Trees, Tree Balancing (Rotations), Tries, Stacks & Queues, Graphs Dijkstra's Shortest Path, Heaps, Depth-First Search and Breadth-First Search.

Table of Contents
- Linked Lists
- Big O Notation
- Sorting
- Generics
- Closures
- Hash Tables
- Binary Search Trees
- Tree Balancing (Rotations)
- Tries
- Stacks & Queues
- Graphs
- Dijkstra's Shortest Path
- Heaps & Heapsort Operations
- Depth-First Search
- Breadth-First Search

23 нояб. 2015 г.

Swift Pocket Reference, 2nd Edition



Год выпуска: 2015
Автор: Anthony Gray
Жанр: Разработка
Издательство: O'Reilly Media
Серия: Pocket Reference
ISBN: 978-1-4919-4007-5
Формат: PDF
Качество: eBook
Количество страниц: 230

Описание:
Этот краткий справочник карманного типа позволяет быстро найти ответы на вопросы, возникающие во время разработки и отладки прикладных программ на Swift — мультипарадигматическом языке программирования компании Apple. Он очень удобен для изучения современных языковых средств Swift, включая типовую безопасность, обобщения, определение типов, замыкания, кортежи, автоматическое управление памятью и поддержку Юникода.
Язык Swift специально предназначен для работы в средах Cocoa и Cocoa Touch и может использоваться совместно с языком Objective-C для обращения к прикладным программным интерфейсам, реализованным на обоих этих языках. Несмотря на то что язык Swift продолжает развиваться, уже ясно, что он имеет все предпосылки стать избранным средством для разработки программного обеспечения на платформах iOS и OS X.

Основные темы книги

- Цикл REPL и интерактивные игровые площадки
- Поддерживаемые типы данных, в том числе символьные строки, массивы и словари
- Переменные и константы
- Порядок выполнения программы: организация циклов и переходов по условию
- Классы, структуры данных, перечисления, функции и протоколы
- Замыкания, подобные блокам в Objective-C и лямбда-выражениям в C#
- Необязательные типы данных, которые не имеют явных значений
- Операторы обычные и специальные и их перегрузка
- Управление доступом: ограничение доступа к типам данных, методам и свойствам
- Встроенные глобальные функции и требования к их параметрам

Этот краткий справочник карманного типа составлен таким образом, чтобы читатель мог быстро найти ответы на насущные вопросы, возникающие во время разработки и отладки прикладных программ на языке программирования Swift.
Справочник удобен для изучения современных языковых средств Swift, включая типовую безопасность, обобщения, определение типов, замыкания, кортежи, автоматическое управление памятью, поддержку необязательных типов и Уникода.

Справочник рассчитан на широкий круг читателей, интересующихся программированием на Swift и разработкой программного обеспечения на платформах iOS и Mac OS X.

8 сент. 2015 г.

Swift Recipes: Problem-Solution Approach

Название: Swift Recipes: Problem-Solution Approach
Aвтор: Mike Rogers
Издательство: Apress
Год выпуска: 2015
ISBN: 1484204190
Формат: PDF/EPUB/AWZ3
Размер: 3.59 MB(PDF), 1.22 MB(EPUB), 1.72 MB(AWZ3)
Количество страниц: 344
Язык: Английский

Swift Recipes provides a problem solution approach for dealing with key aspects of the Swift programming language (covering version 1.2), ensuring you have the indispensable reference you need to successfully execute common programming tasks. You'll learn how to use the unique features of the Swift programming language as well as its use with Cocoa and Cocoa touch frameworks and libraries. Solutions are available for a range of problems, including application development with Xcode; working with strings, numbers, and object collections; dealing with threads, multi-core processing, and asynchronous processing; and building applications that take advantage of dates and timers and memory management. This book is an essential core reference for every Swift programmer and offers solutions in a concise and easy-to-follow manner. T. Michael Rogers has developed iOS applications for Fortune 100 brands and startups, and has trained new and experienced iOS developers via the iOS Boot Camp in New York City, online courses, and in private settings. He brings his expertise to offer you the ability to use and exploit Swift to get the most out of all your projects for your app creations, whether you use iOS or Mac OS X.

12 авг. 2015 г.

Learning Swift Programming

Год: 2015
Автор: Jacob Schatz
Жанр: Программирование
Издательство: Addison-Wesley Professional
ISBN: 978-0133950403
Язык: Английский
Формат: PDF
Качество: Изначально компьютерное (eBook) (converted)
Интерактивное оглавление: Да
Количество страниц: 300

Описание: Get started fast with Swift programming for iOS and OS X
Learning Swift Programming is a fast-paced, hands-on introduction to writing production-quality iOS and OS X apps with Apple’s new programming language. Written for developers with previous experience in any other modern language, this book explains Swift simply and clearly, using relevant examples that solve realistic problems.

Author Jacob Schatz’s popular Skip Wilson video tutorials on YouTube have already helped thousands of Apple developers get started with Swift. Now, he helps you take full advantage of Swift’s advanced design, remarkable performance, and streamlined development techniques.
Step-by-step, you’ll move from basic syntax through advanced features such as closures and generics–discovering helpful tips and tricks along the way. After you’ve mastered Swift’s building blocks and learned about its key innovations, a full section of case studies walks you through building complete apps from scratch.

- Compare Swift with Objective-C, JavaScript, Python, Ruby, and C
- Collect data with arrays and dictionaries, and store it with variables and constants
- Group commonly-used code into functions for easy reuse
- Structure your code with enums, structs, and classes
- Use generics to get more done with less code
- Write closures to share small blocks of functionality
- Use optionals to write more robust, crash-resistant, and cleaner code
- Integrate existing Objective-C code into new Swift apps
- Program on the bit and byte level with advanced operators
- Implement efficient design patterns with protocols and delegates
- Create animated 2D games with SpriteKit, and 3D games with SceneKit

Learn Swift A-Z Foundations to make iOS and OSX Apps. Video tutorial


Год выпуска: 2015
Производитель: Udemy
Сайт производителя: www.udemy.com/learn-swift-a-z-foundations/
Автор: Andrew Seeley
Продолжительность: 3 hours
Тип раздаваемого материала: Видеоурок
Язык: Английский

Описание: Узнать все аспекты Swift на создание прочной основы для IOS и OSX Mac-приложений.

Learn all aspects of Swift to build a solid foundation to make iOS and OSX Mac Apps.
This course will teach you about Swift - Apple's newest programming language. Swift makes it alot easier to develop and understand App development so anyone can pick it up easily!
This course will focus on the fundamentals of Swift - to develop iOS/Mac apps you need a good foundation understanding of Swift first. After taking this course you will have a good understanding of Swift and will be ready to learn how to make iOS/Mac Apps!
What are you waiting for, every second more and more developers are earning money from their apps, why not you!

Формат видео: MP4
Видео: AVC, 960x540, 16:9, 30.000 fps, ~ 87 Kbps
Аудио: AAC, 48.0 KHz, ~ 96.0 Kbps, 2 channels

Section 1: Introduction
Section 2: Variables & Constants
Section 4: Working with Data Types & Operations
Section 5: Control Flow - If Statements
Section 6: Control Flow - Loops
Section 7: Arrays & Dictonary's
Section 8: Enumerations
Section 9: Functions
Section 10: It's a wrap!



Make Mario Game in iOS 8 Swift. Video tutorial


Год выпуска: 2015
Производитель: Skillfeed
Сайт производителя: skillfeed.com
Автор: Muhammad Haroon
Продолжительность: 2:59
Тип раздаваемого материала: Видеоурок
Язык: Английский

Описание: In this course, we'll learn how to make a mario like or any other platformer game. The player will be able to move left, right or jump in both directions. It will have the fire capability and will be able to interact with all the objects in the game like ground, ground gaps, stairs, bricks, coins, enemies.

Формат видео: MP4/FLV
Видео: MPEG-4/Flash, 960x540, 16:9, 30fps, 267(500)kbps
Аудио: AAC, 44.1kHz, 128kbps, stereo




5 авг. 2015 г.

iOS 8 Programming Fundamentals with Swift Swift, Xcode, and Cocoa Basics


By: Matt NeuburgPublisher: O'Reilly MediaFormats: Ebook (pdf)
Ebook: March 2015 Pages: 582

Move into iOS development by getting a firm grasp of its fundamentals, including the Xcode IDE, the Cocoa Touch framework, and Swift—Apple’s new programming language. With this thoroughly updated guide, you’ll learn Swift’s object-oriented concepts, understand how to use Apple’s development tools, and discover how Cocoa provides the underlying functionality iOS apps need to have.

- Explore Swift’s object-oriented concepts: variables and functions, scopes and namespaces, object types and instances
- Become familiar with built-in Swift types such as numbers, strings, ranges, tuples, Optionals, arrays, and dictionaries
- Learn how to declare, instantiate, and customize Swift object types—enums, structs, and classes
- Discover powerful Swift features such as protocols and generics
- Tour the lifecycle of an Xcode project from inception to App Store
- Create app interfaces with nibs and the nib editor, Interface Builder
- Understand Cocoa’s event-driven model and its major design patterns and features
- Find out how Swift communicates with Cocoa’s C and Objective-C APIs

Once you master the fundamentals, you’ll be ready to tackle the details of iOS app development with author Matt Neuburg’s companion guide, Programming iOS 8

7 мая 2015 г.

UIAlertView с блоком (без делегата) / UIAlertView with block (without delegate) iOS 7

Очень часто не хочется использовать UIAlertView - делегат для идентификации тапнутой пользователем кнопки, особенно если у Вас в контроллере UIAlertView несколько, то приходится присваивать даже tag для UIAlertView. Нашел на просторах UIAlertView с блоком. Очень упростила жизнь. Хотя во многих случаях тоже есть необходимость использовать обычный UIAlertView. Данный Tips&Tricks предназначен в основном для iOS 7, т.к. в iOS 8 уже есть UIAlertViewController (если мне не изменяет память, теперь присутствует тот же блок).

UIBAlertView *timesheetsSubmited = [[UIBAlertView alloc] initWithTitle:@"Title"
message:@"message"
cancelButtonTitle:@"cancel"
otherButtonTitles:@"ok", nil];

[timesheetsSubmited showWithDismissHandler:^(NSInteger selectedIndex,
                                             NSString *selectedTitle,
                                             BOOL didCancel) {
    if (selectedIndex == 1) {
        
        //code
    }
}];

24 мар. 2015 г.

UIButton popup анимация / UIButton popup animation

Анимация кнопки (UIButton) по клику или без. Также можно анимировать любой другой контрол.








button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001);
    [self.view addSubview:button];
    
    [UIView animateWithDuration:0.4/1.5 animations:^{
        button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.3, 1.3);
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:0.4/2 animations:^{
            button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.8, 0.8);
        } completion:^(BOOL finished) {
            [UIView animateWithDuration:0.4/2 animations:^{
                button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1);
            } completion:^(BOOL finished) {
                [UIView animateWithDuration:0.4/2 animations:^{
                    button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0);
                } completion:^(BOOL finished) {
                    button.transform = CGAffineTransformIdentity;
                }];
            }];
        }];

    }];

16 мар. 2015 г.

Swift Development with Cocoa


Ready to build apps for iPhone, iPad, and Mac now that Swift has landed? If you're an experienced programmer who's never touched Apple developer tools, this hands-on book shows you how to use the Swift language to make incredible iOS 8 and OS X apps, using Cocoa and Cocoa Touch.

Learn how to use Swift in a wide range of real-world situations, with Cocoa features such as Event Kit and Core Animation. You'll pick up Swift language features and syntax along the way, and understand why using Swift (instead of Objective-C) makes iOS and Mac app development easier, faster, and safer. You'll also work with several exercises to help you practice as you learn.

Publisher: O'Reilly Media
By: Jonathon Manning, Paris Buttfield-Addison, Tim Nugent
ISBN: 978-1-49190-894-5
Year: 2014
Pages: 474
Language: English
File size: 9.8 MB
File format: PDF

8 мар. 2015 г.

Удаление / замена ненужных символов в строке


Иногда нам нужно избавиться от ненужных символов в строке, так как они могут помешать нам что либо реализовать. Например ответ от сервера с не отформатированным JSON`ом, ключи и значения которого просто разделены запятыми. По запятым мы строку разбить можем, а дальше у нас в подстроках присутствует JSON`овский мусор ( {[ключ:значение] ).
Почистить строку довольно просто (например я использую данную функцию чтобы преобразовать запятую в точку, когда пользователь вводит число с плавающей точкой с русской раскладкой):

// Смена запятой в числе на точку

- (NSString *)replacePriceCountToDotCharacter:(NSString *)string {
    
    NSCharacterSet *charactersToRemove = [NSCharacterSet characterSetWithCharactersInString:@","];
    NSString *trimmedReplacement = [[string componentsSeparatedByCharactersInSet:charactersToRemove]
                                    componentsJoinedByString:@"."];
    
    return trimmedReplacement;

}

Вместо запятой можно прописать любые символы (не разделяя никакими пробелами или запятыми) которые нужно удалить или заменить (вместо точки) на другие. Для простого удаления достаточно убрать точку и оставить строку пустой ( @"" ).

19 февр. 2015 г.

Xcode. Синхронизация ваших сниппетов.

Во время разработки приложений очень часто приходится писать один и тот же код или реализацию какого-нибудь алгоритма (взять тот же банальный rootViewController). Чтобы тратить меньше времени на написание монотомного кода создаю сниппеты.

Через некоторое время стал вопрос (т.к. иногда приходится брать работу на дом, да и не отставать в своих проектах) - КАК синхронизировать свои сниппеты с "домашней" средой разработки и наоборот.

Перелопатив кучу интернет-ресурсов и информации толком так ничего и не нашел. Но вопрос оставался открытым, уже выкинул из головы эту тему, НО, тут на днях по некоторой воли "случайности" наткнулся на зарубежную статью. Решение синхронизации между IDE оказалось довольно простым (все телодвижения проводим в терминале):

$ cd ~/Library/Developer/Xcode/UserData
$ mv CodeSnippets /Dropbox/Xcode/
$ ln -s ~/Dropbox/Xcode/CodeSnippets/ CodeSnippets

Логично использовать, вместо Dropbox, свой любимый облачный сервис.
Главное что стоит помнить - Данные манипуляции проводятся только на одной стороне. На другой стороне нужны только первая и третья строчки, не забыв перед этим удалить папку CodeSnippets, а потом уж создавать симлинк на папку в Dropbox`е.

22 дек. 2014 г.

8 дек. 2014 г.

Кастомные сниппеты кода в Xcode.

Как довольно часто приходится набирать при каждом новом проекте или иногда в каком-то из контроллеров код, который Вы набирали пару дней назад в другом проекте, а ведь время не заставляет себя ждать. Найти старый проект, вытянуть из него нужный код, поменять название класса / переменной и прочих данных тоже занимает время. Можно воспользоваться рефакторингом ИДЕ, что тоже не плохо. А можно сделать себе сниппет и просто менять выделенные подсказки на свои данные. Работает это на подобии когда вы пишете ' if ' или ' init ' и ИДЕ сама подкидывает Вам необходимые символы, запятые, переносы и т.д.

Например возьмем локализацию Вашего приложения, выгладит это примерно так:

NSLocalizedString(@"appName", nil)

Нужно набрать NSLocalizedString потом добавить кавычки, между кавычками прописать название переменной, вместо которой из файла приложение возьмет нужный перевод слова.

Упростим немножко. Сделаем так чтобы по нашему набору определенного ключа появлялся код выше, и нам оставалось лишь только вписать название переменной. В любом месте редактора набираем следующее:

NSLocalizedString(@"<#localizeVariableName#>", nil)

Как только вы закроете правую скобку после хеш-символа, у Вас слово, которое внутри хеш-символов преобразится в черновой вариант с голубого цвета заливкой:

NSLocalizedString(@"localizeVariableName", nil)

Теперь выделяем наш код и нажимаем кнопку мыши на голубом фоне и не отпуская перетаскиваем вправо в библиотеку сниппетов. Там уже можно отредактировать по какому ключу ИДЕ будет подставлять этот код. Например себе я упростил простым словом ' localize '. И теперь когда я набираю это слово, Xcode автоматически предлагает мне подстановку моего сниппета.


15 сент. 2014 г.

Тестирование OS X Yosemite 10.10 Beta без аккаунта разработчика

Получить (загрузить) OS X Yosemite 10.10 Beta без аккаунта разработчика очень просто. Достаточно иметь Apple ID, перейти по ссылке на программу бесплатного тестирования системы

13 июн. 2014 г.

10 июн. 2014 г.

9 июн. 2014 г.