Nsurlsession background download many files






















Run an Android App. Rails 4 - pundit - how to write if statement to check user permissions. Advantage of creating a form as a service rather than just a classType? How to show all invalid objects in PostgresQL. Construct image from 4D list. Build Pipeline: Unload asset bundles before building a player or other asset bundles. This prevents building objects loaded out of asset bundles into a second build which could cause unexpected behavior.

Build Pipeline: Will remove duplicate mono folder in Mac Standalone builds, removing around kb of unneeded data from builds. DX Fixed a crash with memory allocation issues when using a camera with the depth or don't clear flags DX Fixed where test runner crashes while running test containing RenderTexture instantiation from command prompt Editor: Added a mechanism for displaying an error message when any of the recent projects contain an invalid or missing ProjectSettings.

Editor: All desktop platforms, editor and player, now have consistent logfile option handling. For most platforms this should mean no change, just improved handling of edge cases and scenarios with logfile parameter. Editor: Android release builds don't forward network traffic to device anymore Editor: case Fixed issue where lines were not drawn when using Handles. DrawDottedLine in a custom inspector Editor: Changed the way fallback fonts are selected to improve availability of Unicode glyphs Editor: Creating a new material while an item is selected in scene could yield "IndexOutOfRange" errors , Editor: Domain reloads will no longer cause prefab override components addition, removals to vanish in the inspector window Editor: Ensure assembly definitions cannot be named as any predefined assembly names.

Editor: Fix a crash when using hyperlink tag without the closing tag. Editor: Fix an issue where asset store window could turn blank when redocking Editor: Fix an issue where custom editors with scrollviews would be squashed in the inspector window Editor: Fix crash when calling DestroyImmediate on components in component context menu callback while having multiple game objects selected Editor: Fix crash when launching Editor on Mac with -batchmode as first argument Editor: Fix crash when using keyboard shortcuts with Mac Editor while Unity project is loading Editor: Fix crash while setting version control mode to visible meta files , Editor: Fix empty strings causing textfield crash Editor: Fix Exceptions raised and Inspector is broken after user removes a component from multiselected GameObjects , Editor: Fix for empty Editor Settings password fields still returning asterisks for empty fields.

Editor: Fix game view dimensions Editor: Fix Game view layout not changing when paused Editor: Fix incorrect insertion of game objects in the hierarchy in particular workflow Editor: Fix Inspector Window's uxml contains strings that are no longer localized , Editor: fix minmaxslider dragelement position, set it absolute used to be relative, which broke layout Editor: Fix selecting items with duplicate names in test hierarchy of Test Runner window , Editor: Fix SettingsWindow layout breaks from Editor: Fix unhideable material's render queue for scriptable render pipelines using shadergraph.

Editor: Fix Unity crash when save assets dialog is displayed for exiting the editor. Editor: Fix: Copying and pasting selected text copies an additional letter that is not selected , Editor: Fixed a bug where Linux Editor inspector didn't activate items with space bar input Editor: Fixed an issue where Add Component menu is not displayed in some cases. Editor: Fixed an issue where Editor could crash when closing the Editor while Asset store or services tab is loading.

Editor: Fixed an issue where Grouped Layers are categorized separately. Editor: Fixed an issue where preview icon for the material preset flickers Editor: Fixed an issue where Project window scroll bar blinks when the assets from the last row are selected. Editor: Fixed being able to drag a shortcut entry on a modifier key on the virtual keyboard in the Shortcut Manager , Editor: Fixed color picker ignores the color hex code when copied with Editor: Fixed crash coming from homewindow callback function Editor: Fixed crash when building player with Services enabled, and using.

NET 3. Editor: Fixed crash when calling RenderTexture. ReleaseTemporary twice for same texture Editor: Fixed custom layout menu items getting out of sync with Shortcut Manager. Editor: Fixed decimal values using comma instead of dot when OS locale has been changed to non-english language. Editor: Fixed generic menu issue related to incorrect grouping of child menu item's when parent menu item contains space " " as its last character.

Editor: Fixed invalid screen parameters when multiple game views instances are active. Editor: Fixed issue LoadSceneAsync would not trigger subscribed callbacks on load Editor: Fixed issue where assets from Unity's built in resources could not be loaded by AssetDatabase.

LoadAllAssetsAtPath Editor: Fixed issue where drag'n'dropping a texture onto a gameObject in the scene creates a material with no texture in HDRP projects. Editor: Fixed issue with Undo not being enabled in a particular workflow Editor: Fixed MenuItems not being called when pressing the corresponding key combination if the key combination contains the Space key , Editor: Fixed null reference exception while modifying pre-muscle settings of an Avatar.

Editor: Fixed NullReferenceException being thrown in a certain case when creating an Animation Condition parameter after creating the Animation Condition. Editor: Fixed NullReferenceException when having multiple asmdefs in the same folder. Editor: Fixed right clicking a shortcut entry in the Shortcut Manager window not selecting the entry , Editor: Fixed scene visibility column hiding the search path of the hierarchy , Editor: Fixed selected shortcut entry in the Shortcut Manager not being reset when changing categories , Editor: Fixed serialization issue for MonoBehaviour's with no script causing a crash in save scene Editor: Fixed the issue with project update from Editor: Fixed the sprite sheet grid artifact when clicking drop-down menus in texture inspector.

Editor: Horizontal scrollbar added for Preset Manager Settings Editor: Make sure that we bail out immediately when dragging a preset on a UnityObject that already has the dragged component Editor: Minimize button "-" does not work for Scene, Game, Hierarchy etc.

Editor: Remove cursor warning when calling Cursor. SetCursor on a texture loaded from an asset bundle Editor: Set the width of Property handler object visible area to its default maximum Editor: Show imported components on Model asset prefabs again was hidden because we don't want to show components for normal prefab assets.

Editor: Test Runner console message overlapping the test menu fix Editor: Unity Test Runner will not execute PrebuildSetup code for ignored playmode tests or tests that are disabled on the selected platform.

GI: File reading errors with hashID. GI: Fix for when the lightmap preview window doesn't get cleared when lightmaps are removed. GI: Fixed a bug where a probeset with completely overlapping positions would cause the deringing settings array to become shifted. It could occur when entering avatar configuration when baking or making sweeping changes to instances contained in the scene.

Has a higher SerializedFile version. GI: Fixed by introducing proper round robin sampling between supersamples. GI: GICache errors are thrown when baking Terrain with trees having deringing enabled on the light probes GI: GPU Lightmapper, use interpolated vertex normal when shading bounce light, rather than plane normal. GI: Improved sampling when baking lightmaps in scenes with translucent objects. GI: Indirect probe lighting should be affected by the indirect intensity slider in the Progressive Lightmapper.

Graphics: Explicitly disallow destroying of temporary render textures Graphics: Fix crash when stripping Umbra module on platforms supporting native code stripping. Graphics: Fix Fog settings not being preserved for the additively loaded scenes. Graphics: Fix Inspector Previews using black cubemaps for environment reflection. Graphics: Fix issue with argument buffer not being bound properly only a subset of the view was bound. Graphics: Fix out-of-memory when trying to compile shader that uses self-referencing macro Graphics: Fixed a rare crash where instancing properties are absent from the MaterialPropertyBlock object sent to DrawMeshInstanced calls.

Graphics: Fixed an issue that would crash the editor when copying raw depth buffers. Graphics: Fixed an issue where activated second display is not rendering when running the project in Standalone Graphics: Fixed blicking when rendering at native resolution in fullscreen with OpenGL on Windows Graphics: Fixed Crash when calling Graphics. ExecuteCommandBuffer if CommandBuffer. SetShadowSamplingMode is used before it , Graphics: Fixed frame debugger showing bad keywords on some cases when connected to standalone playe Graphics: Fixed graphics format that should support random writes.

Graphics: Fixed loading of compressed texture with incomplete mipmap chain , Graphics: Fixed RenderTexture asset UI to lose selected format data when the selected format is not supported. Graphics: Fixed scene view rendering default skybox when SRP is enabled Graphics: Fixed support for 32 bit vertex index buffer sub-mesh on dx11 during SRP batching.

Graphics: Fixed Texture. Graphics: Force rebaking of Reflection Probes in the Editor when changing the shader code of the Renderers used in baked Reflection Probes Graphics: MeshTopology. Quads generates a draw call that uses 3 point patches instead of 4 point Graphics: Metal: Fix a rare, generic codegen regression after adding Metal Tessellation support , Graphics: Metal: Fixed a performance issue that prevented GPU drivers from utilizing internal texture compression did not apply to RenderTexture.

Graphics: Optimizes single-colored ambient probe updates. Graphics: Skip shadow lights and shadow casters culling when shadows are disabled Graphics: Vulkan: Fixed a race condition between updating ComputeBuffers from script and rendering from them within Graphics jobs.

This cause cause crashes on some platforms. IIterable interface. IL2CPP: Fixes a compilation error that can occur when the debugger is enabled but there are no source files specified in the symbol data.

Adding support for pointer types when executing an initobj instruction. IL2CPP: Prevent a possible crash when a list of generic or nullable types with a field that is a struct with explicit layout is reallocated. Note: on iOS startButton or Menu button only reports down event, there's no up event, that's why we're simulating up event right after down event to simulate a click.

Linux: Fix crash on Editor startup when using -force-vulkan , Linux: Fix using multiple identical webcams on Linux , Linux: Fixed annoying "'Unity' is not responding" message on Linux. Linux: Fixed issue where tabs were incorrectly processed twice. Linux: Fixed issue with keyboard input not being captured by the Game view when in Play mode , Linux: Fixed Linux Editor executable being much larger than it used to be 1.

Linux: Fixed progress bar freeze when sprite assets have invalid names , Linux: Fixed touchpad scrolling being too sensitive in the Linux Editor Linux: Strong Input lag when locking cursor and using mouse with hz polling rate , Lumin: Fix an issue where the minimum platform API level in a custom manifest was not being respected.

Mobile: [Mobile]Fixed distortion in reflection when using baked reflection probes , Multiplayer: Fixed issue where the unet hlapi package was not being automatically added to old projects opened in OSX: Fixed resolution crash when setting to invalid values via script We want our test suite to be consistent, predictable, and fast. Now our test is predictable, controlled, and it runs crazy fast. However, this approach has some major drawbacks:. This means we can intercept the request at a low level by using a tool like nock :.

This avoids the HTTP client coupling from the previous step, but still has many similar drawbacks:. The basic workflow goes like this:. Server with our proxy middleware. Look, no implementation details! Server handler, which allows us to do some really cool things. Want to give it a spin? Do you love development tooling and helping keep teams on the latest and greatest technology?

Or maybe you just want to help build the best home for your photos on the entire internet? We introduced the justified layout on Flickr. Our community of photographers loved it for its ability to efficiently display many photos at their native aspect ratio with visually pleasing, consistent whitespace, so we quickly added it to the rest of the website.

From back when we were primarily on the PHP stack to our lovely new JavaScript based isomorphic stack. Last year Eric Socolofsky did a great job explaining how the algorithm works and how it fits into a larger infrastructure for Flickr specifically.

Until now! Or grab it directly from Github. No configuration is required. This is the extent of what the module provides. Use absolute positioning, background positions, canvas, generate a static image on the backend, whatever you like!

My favorite is the fullWidthBreakoutRowCadence option that we use on album pages. All config options are documented on the docs and demo page. The justified layout algorithm is just one part of our photo list infrastructure. We welcome your feedback, issues and contributions on Github. This is the first of quite a bit of code we have in the works for open source release.

When working with large-scale software systems, configuration management becomes crucial; supporting non-uniform environments gets greatly simplified if you decouple code from configuration.

Popular approaches to solving this problem include using configuration files or having a dedicated configuration service. Our new solution combines the extremely popular GitHub and cfg4j library, giving you a very flexible approach that will work with applications of any size. Configuration repository and editor : Where your configuration lives. Push cache : Intermediary store that we use to improve fetch speed and to ease load on GitHub servers.

CD pipeline : Continuous deployment pipeline pushing changes from repository to push cache, and validating config correctness. Configuration library : Fetches configs from push cache and exposing them to your business logic. Bootstrap configuration : Initial configuration specifying where your push cache is so that library knows where to get configuration from.

The first thing you might expect from the configuration repository and editor is ease of use. So what options are out there that may satisfy those requirements? Git provides us with a history of changes and an easy way to branch off configuration. It also has great support in the form of GitHub which we use both as an editor built-in support for YAML files and collaboration tool pull requests, forks, review tool.

Both are nicely glued together by following the Git flow branching model. One of the goals was to make managing multiple configuration sets execution environments a breeze. We need the ability to add and remove environments quickly.

For every environment, we store a separate directory with config files in Git. All of them have the exact same structure and only differ in YAML file contents. This solution makes working with environments simple and comes in very handy during local development or new production fleet rollout see use cases at the end of this article. Some of the products that we work with at Yahoo have a very granular architecture with hundreds of micro-services working together. It greatly reduces the overhead of maintaining multiple repositories.

We support this use case by having multiple top-level directories, each holding configurations for one service only. The main role of push cache is to decrease the load put on the GitHub server and improve configuration fetch time.

You can install Consul clients on the edge nodes and they will keep being synchronized across the fleet. This greatly improves both the reliability and the performance of the system. If performance is not a concern, any key-value store will do. You can skip using push cache altogether and connect directly to Github, which comes in handy during development see use cases to learn more about this. When the configuration repository is updated, a CD pipeline kicks in.

This fetches configuration, converts it into a more optimized format, and pushes it to cache. Before we can connect to the push cache to fetch configuration, we need to know where it is. The config contains the hostname, port to connect to, and the name of the environment to use. You need to put this config with your code or as part of the CD pipeline. This simple yaml file binding Spring profiles to different Consul hosts suffices for our needs:.

The configuration library takes care of fetching the configuration from push cache and exposing it to your business logic. This library re-loads configurations from the push cache every few seconds and injects them into configuration objects that our code uses. The most important piece is business logic. To best make use of a configuration service, the business logic has to be able to re-configure itself in runtime.

Here are a few rules of thumb and code samples:. When you develop a feature, a main concern is the ability to evolve your code quickly. A full configuration-management pipeline is not conducive to this. We use the following approaches when doing local development:. When you work with multiple environments, some of them may share a configuration. Configuration repository, push cache, and configuration CD pipeline can experience outages. Verifying that code and configuration are kept in sync happens at the configuration CD pipeline level.

One part of the continuous deployment process deploys the code into a temporary execution environment, and points it to the branch that contains the configuration changes. Once the service is up, we execute a batch of functional tests to verify configuration correctness. The presented solution is the result of work that we put into building huge-scale photo-serving services. We needed a simple, yet flexible, configuration management system. Combining Git , Github , Consul and cfg4j provided a very satisfactory solution that we encourage you to try.

To help improve the search ranking and relevance of national, personal, and religious holiday photos, we first have to see when the photos were taken; when, for example, is the Christmas season? Understanding what people are looking for when they search for their own photos is an important part of improving Flickr.

Earlier this year, we began a study which will be published at CHI under the same name as this post by trying to understand how people searched for their personal photos. We did this a total of times. These might include a year , a month January , a season winter , or a holiday or special event Thanksgiving, Eid al-Fitr, Easter, Passover, Burning Man.

So we wanted to understand that situation: how often does fall feel like winter? To answer this, we mapped For example, if it snows the day after Thanksgiving, it definitely feels like winter. Not all temporal search terms are quite so complicated; some holidays are celebrated and photographed on a single day each year, like Canada Day July 1st or Boxing Day December 26th.

While these holidays can be easily translated to date queries, other holidays have more complicated temporal patterns. Have a look at these lunar holidays. These events move around in a regular, algorithmically determinable, but sometimes complicated, way. Most of these holidays tend to oscillate as a leap calculation is added periodically to synchronize the lunar timing to the solar calendar. Some holidays and events, like birthdays, happen on every day of the week.

If you look at other languages, this difference practically goes away: 9. But Christmas photos are taken throughout December. That means that every day from December 1st to January 1st hits that definition, with December 2nd barely scraping in. That makes…32 days of Christmas!

Merry Christmas and Happy Holidays —for all the holidays you celebrate and photograph. PS: Flickr is hiring! Labs is hiring! Come join us!

Flickr Engineering Team Vision Flickr Engineering exists to design, build, and maintain software that enables the global community of photography enthusiasts to find inspiration, connect, and share. Flickr Engineering Guiding Principles 1. Psychological Safety You and your coworkers are the most important element of the engineering organization.

Game Engine back to top glide engine - SpriteKit and GameplayKit based engine for making 2d games, with practical examples and tutorials. Gesture back to top ShowTime - Show off your iOS taps and gestures for demos and videos with just one line of code.

Tactile - A safer and more idiomatic way to respond to gestures and control events. Bluejay - A simple framework for building reliable Bluetooth LE apps. SwiftyBluetooth - Simple and reliable closure based wrapper around CoreBluetooth.

CameraKit-iOS - Massively increase camera performance and ease of use in your next project. FDTake - Easily take a photo or video or choose from library. Fusuma - Instagram-like photo browser and a camera feature. NextLevel - Rad Media Capture. Barcode Barcode, QR-code, other code readers back to top BarcodeScanner - A simple and beautiful barcode scanner view controller. Sensors Manage your device sensors in a faster and easier way back to top Images An interesting list of image related libs..

AlamofireImage - AlamofireImage is an image component library for Alamofire. ATGMediaBrowser - Image slide-show viewer with multiple predefined transition styles, and with ability to create new transitions with ease.

Brightroom - An image editor and engine using CoreImage. CTPanoramaView - A library that displays spherical or cylindrical panoramas with touch or motion based controls.

DTPhotoViewerController - A fully customizable photo viewer ViewController to display single photo or collection of photos, inspired by Facebook photo viewer. FacebookImagePicker - Facebook album photo picker. FlexibleImage - A simple way to play with images. FMPhotoPicker - A modern, simple and zero-dependency photo picker with an elegant and customizable image editor. HanekeSwift - A lightweight generic cache for iOS with extra love for images.

ImageLoader - A lightweight and fast image loader for iOS. ImgixSwift - Easily update image urls to be fast and responsive. Kanvas - A iOS library for adding effects, drawings, text, stickers, and making GIFs from existing media or the camera. Kingfisher - Image download and caching. Lightbox - A convenient and easy to use image viewer for your iOS app. MapleBacon - Image download and caching library. MCScratchImageView - A custom ImageView that is used to cover the surface of other view like a scratch card, user can swipe the mulch to see the view below.

Nuke - Advanced framework for loading, caching, processing, displaying and preheating images. PassportScanner - Scan the MRZ code of a passport and extract the first name, last name, passport number, nationality, date of birth, expiration date and personal number.

Rough - Rough lets you draw in a sketchy, hand-drawn-like, style. Sharaku - Image filtering UI library like Instagram. Snowflake - Work with SVG. Toucan - Image processing api. Viewer - Image viewer or Lightbox with support for local and remote videos and images. Vulcan - Multi image downloader with priority. ZImageCropper - Crop image in any shape.

Key Value Coding Libraries for key-value coding back to top Keyboard Do you want to create your own customized keyboard? Here are some interesting resources back to top IHKeyboardAvoiding - An elegant solution for keeping any UIView visible when the keyboard is being shown.

No UIScrollView required. KeyboardShortcuts - Add user-customizable global keyboard shortcuts to your macOS app.

Includes a Cocoa and SwiftUI component. Typist - Small, drop-in UIKit keyboard manager for iOS apps-helps manage keyboard's screen presence and behavior without notification center. Layout Libs to help you with layout. Provides placeholders.

FlexLayout - Nice and clean interface to the highly optimized Facebook yoga Flexbox implementation. Neon - A powerful programmatic UI layout framework. PinLayout - Fast Views layouting without auto layout. No magic, pure code, full control and blazing fast. Stevia - Elegant view layout for iOS. Auto Layout Bored of using storyboard?

Cartography - Declarative auto layout lib for your project. Cassowary - A linear constraint solving library using the same algorithm as AutoLayout.

DeviceLayout - AutoLayout can be set differently for each device. EasyPeasy - Auto Layout made easy. EZLayout - An easier and faster way to code Autolayout. Swiftstraints - Powerful auto-layout framework that lets you write constraints in one line of code. TinyConstraints - TinyConstraints is the syntactic sugar that makes Auto Layout sweeter for human use. L10n-swift - Localization of an application with ability to change language "on the fly" and support for plural forms in any language.

LocalizationKit - Realtime dynamic localization of your app with remote management so you can manage maintain and deploy translations without resubmitting app. Localize - Localize apps using e.

Localize-Swift - Localize apps using e. Locheck - Validate. Easy pluralization. SwiftGen-L10n - A tool to auto-generate enums for all your Localizable. Translatio - Super lightweight library that helps you to localize strings, even directly in storyboards. CleanroomLogger - Configurable and extensible high-level logging API that is simple, lightweight and performant.

Gedatsu - Provide readable format about AutoLayout error console log. Printer - A fancy logger for your next app. Puree - A log collector for iOS. TinyConsole - A tiny log console to display information while using your iOS app. Watchdog - Utility for logging excessive blocking on the main thread. WatchdogInspector - A logging tool to show the current framerate fps in the status bar of your iOS app. Willow - Willow is a powerful, yet lightweight logging library.

GEOSwift - Make it easier to work with geographic models and calculate intersections, overlapping, projections etc. LocoKit - A location and activity recording framework for iOS. Use any image as annotation view. Math back to top Arithmosophi - Set of protocols for Arithmetic and Logical operations.

BigInt - Arbitrary-precision arithmetic. SigmaSwiftStatistics - A collection of functions for statistical calculation. Upsurge - Simple and fast matrix and vector math. Natural Language Processing back to top Network A list of libs that allow you to decrease the amount of time spent dealing with http requests.

Based on Alamofire. Conduit - Robust networking for web APIs. Dots - Lightweight Concurrent Networking Framework.

Dratini - A neat network layer. Malibu - A networking library built on promises. Moya - Network abstraction layer. MultiPeer - A wrapper for the MultipeerConnectivity framework for automatic offline data transmission between devices. Netfox - A lightweight, one line setup, network debugging library. Netswift - A type-safe, high-level networking solution. OAuth2 - oauth2 auth lib. Postal - Framework providing simple access to common email providers.

Inspired by Retrofit. ResponseDetective - A non-intrusive framework for intercepting any outgoing requests and incoming responses between your app and server for debugging purposes. ShadowsocksX-NG - A fast tunnel proxy that helps you bypass firewalls. An alternative to callback- and delegate-based networking. SolarNetwork - Elegant network abstraction layer. HTML Need to manipulate contents from html easily? WKZombie - Headless browser. Webserver Would you like host a webserver in your device?

The Perfect library, application server, connectors and example apps. Generate PDF from view s or image s. SwiftFormat - A code library and command-line formatting tool for reformatting Swift code. SwiftLint - A tool to enforce coding conventions. Swimat - Xcode plugin to format code. Scripting back to top Marathon - Easy way to create and manage scripts. Swift for Scripting - A hand-curated collection of useful and informative scripting material.

SCrypto - Elegant interface to access the CommonCrypto routines. Siphash - Simple and secure hashing with the SipHash algorithm. Themis - Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on.

SwiftKeychainWrapper - Simple static wrapper for the iOS Keychain to allow you to use it in a similar fashion to user defaults. Live - Demonstrate how to build a live broadcast app. Styling back to top Ambience - Brightness aware accessibility theme switching without coding.

Stylist - Define UI styles in a hot-loadable external yaml or json file. Themes - Theme management. SystemKit - OS X system library.

Testing A collection of testing frameworks. Erik - An headless browser to access and manipulate webpages using javascript allowing to run functional tests.

Fakery - Fake data generator. Nimble - A matcher framework. PinpointKit - Lets your testers and users send feedback with annotated screenshots and logs using a simple gesture.

Sizes - Test your app on different device and font sizes. SwiftCheck - A testing library that automatically generates random data for testing program properties.

Mock back to top AutoMockable - A framework that leverages the type system to let you easily create mocked instances of your data types.

Cuckoo - First boilerplate-free mocking framework. Mockit - A simple mocking framework, inspired by the famous Mockito for Java. MockSwift - Mock Framework that uses the power of property wrappers. Text A collection of text projects.

BonMot - Beautiful, easy attributed strings for iOS. Croc - A lightweight Emoji parsing and querying library. MarkdownKit - A simple and customizable Markdown Parser.

MarkdownView - iOS Markdown view. MarkyMark - Converts Markdown into native views or attributed strings. Notepad - A fully themeable markdown editor with live syntax highlighting. Parsey - Parser combinator framework that supports source location tracking, backtracking prevention, and rich error messages. PredicateFlow - PredicateFlow is a builder that allows you to write amazing, strong-typed and easy-to-read NSPredicate.

Unit tests covered. Sprinter - A library for formatting strings. SwiftVerbalExpressions - VerbalExpressions porting.

SwiftyAttributes - Extensions that make it a breeze to work with attributed strings. Texstyle - Texstyle allows you to format attributed strings easily. TextAttributes - An easier way to compose attributed strings.



0コメント

  • 1000 / 1000