Skip to content

Instantly share code, notes, and snippets.

Avatar
💜
Join me! Twitch is hiring!

Mark Cerqueira markcerqueira

💜
Join me! Twitch is hiring!
View GitHub Profile
@markcerqueira
markcerqueira / spoon-tests.sh
Created Apr 30, 2018
Script to build and run UI testing for Android using Spoon runner
View spoon-tests.sh
# Uninstall existing APKs and install our app APK and test APK
./gradlew uninstallAll installDebug installDebugAndroidTest
# List all APKs installed with adb shell 'pm list packages -f'
# Grant the app APK write and read to external storage permissions
adb shell pm grant gg.mark.debug android.permission.WRITE_EXTERNAL_STORAGE
adb shell pm grant gg.mark.debug android.permission.READ_EXTERNAL_STORAGE
export APK=build/outputs/apk/debug/debug.apk
export TEST_APK=build/outputs/apk/androidTest/debug/debug-androidTest.apk
@markcerqueira
markcerqueira / AndroidManifest.xml
Created Apr 30, 2018
Stripping maxSDkVersion from WRITE_EXTERNAL_STORAGE permission
View AndroidManifest.xml
<!-- Strip away maxSdkVersion -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:remove="android:maxSdkVersion"/>
<!-- Add the permission with no maxSdkVersion defined -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
View ImageLiteral.swift
#imageLiteral(resourceName: "name")
@markcerqueira
markcerqueira / output.txt
Last active Sep 15, 2017
AAPT permissions output
View output.txt
package: mark.gg
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.WAKE_LOCK'
uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE'
@markcerqueira
markcerqueira / 26.0.1.txt
Created Sep 15, 2017
Android Asset Packaging Tool
View 26.0.1.txt
Android Asset Packaging Tool
Usage:
aapt l[ist] [-v] [-a] file.{zip,jar,apk}
List contents of Zip-compatible archive.
aapt d[ump] [--values] [--include-meta-data] WHAT file.{apk} [asset [asset ...]]
strings Print the contents of the resource table string pool in the APK.
badging Print the label and icon for the app declared in APK.
permissions Print the permissions from the APK.
@markcerqueira
markcerqueira / xcode_build_phase.sh
Created Jan 11, 2015
Crittercism Auto-Upload dSYM with API Key as an environmental variable
View xcode_build_phase.sh
# only upload during Release builds, otherwise every build will upload a dSYM
if [ "${CONFIGURATION}" = "Release" ]; then
# put the secret key in this file as an environmental variable
if [ -f ~/.crittercism_keys ]; then
# this is required to inject the environmental variables into the shell spawned by Xcode
source ~/.crittercism_keys
APP_ID="MY_FIRST_APP_ID_abcdefghi"
# instead of having your API key here, it is copied in from the environmental varible
@markcerqueira
markcerqueira / pi.txt
Created Mar 14, 2017
31,415 digits of Pi formatted with spaces in between digits
View pi.txt
3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4 3 3 8 3 2 7 9 5 0 2 8 8 4 1 9 7 1 6 9 3 9 9 3 7 5 1 0 5 8 2 0 9 7 4 9 4 4 5 9 2 3 0 7 8 1 6 4 0 6 2 8 6 2 0 8 9 9 8 6 2 8 0 3 4 8 2 5 3 4 2 1 1 7 0 6 7 9 8 2 1 4 8 0 8 6 5 1 3 2 8 2 3 0 6 6 4 7 0 9 3 8 4 4 6 0 9 5 5 0 5 8 2 2 3 1 7 2 5 3 5 9 4 0 8 1 2 8 4 8 1 1 1 7 4 5 0 2 8 4 1 0 2 7 0 1 9 3 8 5 2 1 1 0 5 5 5 9 6 4 4 6 2 2 9 4 8 9 5 4 9 3 0 3 8 1 9 6 4 4 2 8 8 1 0 9 7 5 6 6 5 9 3 3 4 4 6 1 2 8 4 7 5 6 4 8 2 3 3 7 8 6 7 8 3 1 6 5 2 7 1 2 0 1 9 0 9 1 4 5 6 4 8 5 6 6 9 2 3 4 6 0 3 4 8 6 1 0 4 5 4 3 2 6 6 4 8 2 1 3 3 9 3 6 0 7 2 6 0 2 4 9 1 4 1 2 7 3 7 2 4 5 8 7 0 0 6 6 0 6 3 1 5 5 8 8 1 7 4 8 8 1 5 2 0 9 2 0 9 6 2 8 2 9 2 5 4 0 9 1 7 1 5 3 6 4 3 6 7 8 9 2 5 9 0 3 6 0 0 1 1 3 3 0 5 3 0 5 4 8 8 2 0 4 6 6 5 2 1 3 8 4 1 4 6 9 5 1 9 4 1 5 1 1 6 0 9 4 3 3 0 5 7 2 7 0 3 6 5 7 5 9 5 9 1 9 5 3 0 9 2 1 8 6 1 1 7 3 8 1 9 3 2 6 1 1 7 9 3 1 0 5 1 1 8 5 4 8 0 7 4 4 6 2 3 7 9 9 6 2 7 4 9 5 6 7 3 5 1 8 8 5 7 5 2 7 2 4 8 9 1 2 2 7 9 3 8 1 8 3 0 1 1 9 4 9 1 2 9 8 3 3 6 7 3 3 6 2
@markcerqueira
markcerqueira / controller.rb
Last active Jan 12, 2017
ACME challenge responder for Sinatra
View controller.rb
class ApplicationController
# ACME Challenge responder. See: https://github.com/dmathieu/sabayon
# If you want to keep this code in a separate controller, remove /.well-known from
# the next line, make a new controller that inherits from ApplicationController (in
# this example ChallengeController), and put this line in your config.ru file:
# map('/.well-known/') { run ChallengeController }
get '/.well-known/acme-challenge/:token' do
data = []
@markcerqueira
markcerqueira / TrailingClosures.swift
Created Nov 13, 2016
Trailing Closures in Swift
View TrailingClosures.swift
// Adapted from https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html
// Here's a function that takes a closure as an argument:
func funFunction(closure: () -> Void) {
// Do stuff and call closure when done
}
// Here's how you call this function passing the closure normally:
funFunction(closure: {
// Closure code goes in here
@markcerqueira
markcerqueira / ChuckPadServiceTests.m
Last active Aug 30, 2016
Snippet of ChuckPadServiceTests.m from markcerqueira/hello-chuckpad
View ChuckPadServiceTests.m
// 1 - Create a new user so we can upload patches
XCTestExpectation *expectation1 = [self expectationWithDescription:@"createUser timed out (1)"];
[[ChuckPadSocial sharedInstance] createUser:user.username email:user.email password:user.password callback:^(BOOL succeeded, NSError *error) {
[self doPostAuthAssertChecks:user];
[expectation1 fulfill];
}];
[self waitForExpectations];
// 2 - Upload a new patch
ChuckPadPatch *localPatch = [ChuckPadPatch generatePatch:@"demo0.ck"];