JavaScriptCore is a built-in iOS library that enables you to use JavaScript in apps alongside Objective-C and Swift. It lets developers read JavaScript from a string, execute it from Objective-C or Swift, and share data structures and functions across languages. We JavaScriptCore to share code between Web and iOS.
skinparam Activity { | |
ArrowColor | |
ArrowFontColor | |
ArrowFontName | |
ArrowFontSize | |
ArrowFontStyle | |
BackgroundColor | |
BarColor | |
BorderColor | |
BorderThickness |
/* | |
##Device = Desktops | |
##Screen = 1281px to higher resolution desktops | |
*/ | |
@media (min-width: 1281px) { | |
/* CSS */ | |
#!/usr/bin/env ruby | |
require 'JSON' | |
device_types = JSON.parse `xcrun simctl list -j devicetypes` | |
runtimes = JSON.parse `xcrun simctl list -j runtimes` | |
devices = JSON.parse `xcrun simctl list -j devices` | |
devices['devices'].each do |runtime, runtime_devices| | |
runtime_devices.each do |device| |
#!/bin/bash | |
function usage { | |
echo "Usage: $0 -c [CodeSign Directory] -p [Xcode Project File.xcodeproj]" | |
echo "If any arguments are not specified, defaults will be attempted. If defaults don't exist, script will exit." | |
echo "OPTIONS:" | |
echo " -c [CodeSign Directory]: Location of directory containing project's provisioning profiles." | |
echo " -p [Xcode Project File]: Path of Xcode project directory (the .xcodeproj, not .pbxproj)" | |
echo " -b: Use PlistBuddy command for UUID replacement instead of sed. (Better handling of a couple of edge cases, but makes diffs impossible to read.)" | |
echo " -v: Verbose logging." |
Emacs packages, features, files, layers, extensions, auto-loading, require
,
provide
, use-package
… All these terms getting you confused? Let’s clear up
a few things.
Emacs files contains code that can be evaluated. When evaluated, the functions, macros and modes defined in that file become available to the current Emacs session. Henceforth, this will be termed as loading a file.
One major problem is to ensure that all the correct files are loaded, and in the
#Sharing Data between iPhone and Apple Watch apps
So we've already taken a look at some of the issues we've faced building our Whiskr Apple Watch app, next we're going to look into how we shared data between the iPhone and Apple Watch app. This was probably one of the hardest aspects to learn and get right, and the current documentation isn't all that great!
To do this we'll have to create an App Group which is essentially a space which both apps can use. It was brought in with the exetension framework in iOS8 so apps can communicate with their Today widgets, or custom keyboards, and amongst other applications.
The first thing we have to do is add the app group capability to both our iPhone and Watch Watch Extension targets.
#!/usr/bin/env ruby | |
device_types_output = `xcrun simctl list devicetypes` | |
device_types = device_types_output.scan /(.*) \((.*)\)/ | |
runtimes_output = `xcrun simctl list runtimes` | |
runtimes = runtimes_output.scan /(.*) \(.*\) \((com.apple[^)]+)\)$/ | |
devices_output = `xcrun simctl list devices` | |
devices = devices_output.scan /\s\s\s\s(.*) \(([^)]+)\) (.*)/ |
iOS 7.0 and iOS 8 (Beta) do not have support for minimal-ui
viewport keyword, nor do they response to window.slideTo(0,1)
or support Fullscreen API, which means there is no easy way to tell Mobile Safari to hide address bar/menu without user interaction.
This is a problem for Web App that mimics Native App design, where html/body are commonly set to height: 100%
, so browser viewport = available screen estate. There are currently no solution besides adding apple-mobile-web-app-capable
meta and ask users to manually Save to Homescreen
.
Frustrated by this limit, we present a soft-fullscreen prompt design, which, coupled with proper CSS hack, can achieve soft-fullscreen with relatively small effort from users.