Skip to content
This repository has been archived by the owner on May 5, 2024. It is now read-only.

Commit

Permalink
[General] Init
Browse files Browse the repository at this point in the history
  • Loading branch information
leptos-null committed Apr 6, 2019
0 parents commit 7afd965
Show file tree
Hide file tree
Showing 39 changed files with 1,566 additions and 0 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## SantaClaraCams

SantaClaraCams is an iOS app that provides an easy way to view the traffic cameras provided by [Santa Clara City](http://santaclaraca.gov/residents/maps/traffic-cameras) (California). Select a camera from the table view, or interactive map, to view the current stream.

### Screenshots

![First view](Screenshots/table_view.png)

![San Tomas Aquino Creek Trail camera with map zoomed out](Screenshots/stact_out.png)

![San Tomas Aquino Creek Trail camera with map zoomed in](Screenshots/stact_in.png)

![Map zoomed out to show many cameras](Screenshots/map_spread.png)

![Intersection of Great America and Bunker hill](Screenshots/gabh_in.png)
572 changes: 572 additions & 0 deletions SantaClaraCams.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions SantaClaraCams/AppDelegate/SCCAppDelegate.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// SCCAppDelegate.h
// SantaClaraCams
//
// Created by Leptos on 3/23/19.
// Copyright © 2019 Leptos. All rights reserved.
//

@import UIKit;

@interface SCCAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end
46 changes: 46 additions & 0 deletions SantaClaraCams/AppDelegate/SCCAppDelegate.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
//
// SCCAppDelegate.m
// SantaClaraCams
//
// Created by Leptos on 3/23/19.
// Copyright © 2019 Leptos. All rights reserved.
//

#import "SCCAppDelegate.h"

@implementation SCCAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state.
// This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message)
// or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks.
// Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers,
// and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the active state;
// here you can undo many of the changes made on entering the background.
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive.
// If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

@end
122 changes: 122 additions & 0 deletions SantaClaraCams/Assets.xcassets/AppIcon.appiconset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png",
"scale" : "3x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@3x.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png",
"scale" : "1x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png",
"scale" : "2x"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "ItunesArtwork@2x.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions SantaClaraCams/Assets.xcassets/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
29 changes: 29 additions & 0 deletions SantaClaraCams/Base.lproj/LaunchScreen.storyboard
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
141 changes: 141 additions & 0 deletions SantaClaraCams/Base.lproj/Main.storyboard
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="4S9-Jc-W6O">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Santa Clara City-->
<scene sceneID="DkU-HK-lJ5">
<objects>
<tableViewController id="Jrc-5f-sBu" customClass="SCCViewController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" bouncesZoom="NO" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="GKR-1X-Ndb">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="separatorColor" red="0.23529411764705882" green="0.23529411764705882" blue="0.23529411764705882" alpha="0.84999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="CameraLocation" textLabel="fsT-LR-fg2" style="IBUITableViewCellStyleDefault" id="woz-QU-VUF">
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="woz-QU-VUF" id="8Iw-aw-K9N">
<rect key="frame" x="0.0" y="0.0" width="341" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="fsT-LR-fg2">
<rect key="frame" x="16" y="0.0" width="324" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="highlightedColor" cocoaTouchSystemColor="darkTextColor"/>
</label>
</subviews>
</tableViewCellContentView>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="Jrc-5f-sBu" id="uoM-ho-9C0"/>
<outlet property="delegate" destination="Jrc-5f-sBu" id="pnA-0N-TFZ"/>
</connections>
</tableView>
<navigationItem key="navigationItem" title="Santa Clara City" id="FmR-8s-1js"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ixI-K4-mAU" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="586" y="67"/>
</scene>
<!--Location View Controller-->
<scene sceneID="vQv-pV-NBF">
<objects>
<viewController storyboardIdentifier="LocationController" id="c2B-Mm-Aqz" customClass="SCCLocationViewController" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="YrP-rX-36x">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="sga-YY-w68">
<rect key="frame" x="0.0" y="20" width="375" height="211"/>
<gestureRecognizers/>
<constraints>
<constraint firstAttribute="width" secondItem="sga-YY-w68" secondAttribute="height" multiplier="512:288" priority="750" id="a5z-a3-4du"/>
</constraints>
<connections>
<outletCollection property="gestureRecognizers" destination="z5S-Pv-ipp" appends="YES" id="4Vy-Ue-FVW"/>
</connections>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="28l-Or-1gx">
<rect key="frame" x="12" y="233" width="351" height="0.0"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleCallout"/>
<color key="textColor" cocoaTouchSystemColor="lightTextColor"/>
<nil key="highlightedColor"/>
</label>
<mapView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" mapType="satelliteFlyover" showsBuildings="NO" showsPointsOfInterest="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iCg-h5-mkj">
<rect key="frame" x="0.0" y="235" width="375" height="432"/>
<connections>
<outlet property="delegate" destination="c2B-Mm-Aqz" id="Gaa-mL-Rvf"/>
</connections>
</mapView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<gestureRecognizers/>
<constraints>
<constraint firstItem="sga-YY-w68" firstAttribute="top" secondItem="gIc-ld-Nrs" secondAttribute="top" id="4HR-OQ-9R4"/>
<constraint firstItem="28l-Or-1gx" firstAttribute="top" secondItem="sga-YY-w68" secondAttribute="bottom" constant="2" id="6JH-aS-5jX"/>
<constraint firstItem="iCg-h5-mkj" firstAttribute="top" secondItem="28l-Or-1gx" secondAttribute="bottom" constant="2" id="Er9-lC-1u6"/>
<constraint firstItem="iCg-h5-mkj" firstAttribute="leading" secondItem="gIc-ld-Nrs" secondAttribute="leading" id="Gy0-e7-C0M"/>
<constraint firstItem="28l-Or-1gx" firstAttribute="leading" secondItem="gIc-ld-Nrs" secondAttribute="leading" constant="12" id="IOK-Iz-OUG"/>
<constraint firstItem="sga-YY-w68" firstAttribute="bottom" relation="lessThanOrEqual" secondItem="YrP-rX-36x" secondAttribute="bottom" id="JOw-2x-XuA"/>
<constraint firstItem="sga-YY-w68" firstAttribute="leading" secondItem="gIc-ld-Nrs" secondAttribute="leading" id="KAk-Ea-iah"/>
<constraint firstItem="gIc-ld-Nrs" firstAttribute="trailing" secondItem="iCg-h5-mkj" secondAttribute="trailing" id="WL3-aQ-Ymp"/>
<constraint firstItem="gIc-ld-Nrs" firstAttribute="trailing" secondItem="28l-Or-1gx" secondAttribute="trailing" constant="12" id="Wj3-d2-Bxv"/>
<constraint firstItem="sga-YY-w68" firstAttribute="trailing" secondItem="gIc-ld-Nrs" secondAttribute="trailing" id="gYh-KX-bZV"/>
<constraint firstAttribute="bottom" secondItem="iCg-h5-mkj" secondAttribute="bottom" priority="750" id="jAr-99-iQ6"/>
</constraints>
<viewLayoutGuide key="safeArea" id="gIc-ld-Nrs"/>
<connections>
<outletCollection property="gestureRecognizers" destination="RXL-Tp-H9w" appends="YES" id="83R-pS-XbE"/>
</connections>
</view>
<connections>
<outlet property="debugLabel" destination="28l-Or-1gx" id="zRZ-Hi-fhQ"/>
<outlet property="imageView" destination="sga-YY-w68" id="ATd-9x-spf"/>
<outlet property="mapView" destination="iCg-h5-mkj" id="3Lv-YN-5bO"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="MfJ-EP-a1F" userLabel="First Responder" sceneMemberID="firstResponder"/>
<pongPressGestureRecognizer allowableMovement="10" minimumPressDuration="0.5" numberOfTouchesRequired="2" id="RXL-Tp-H9w">
<connections>
<action selector="_toggleDebugView:" destination="c2B-Mm-Aqz" id="Tlq-l8-lwB"/>
</connections>
</pongPressGestureRecognizer>
<tapGestureRecognizer id="z5S-Pv-ipp">
<connections>
<action selector="_imageDoubleTapSkip:" destination="c2B-Mm-Aqz" id="yP3-ed-Jxc"/>
</connections>
</tapGestureRecognizer>
</objects>
<point key="canvasLocation" x="1388" y="65.217391304347828"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="hqk-KI-Akc">
<objects>
<navigationController id="4S9-Jc-W6O" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" barStyle="black" id="3gy-QK-lA7">
<rect key="frame" x="0.0" y="20" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="Jrc-5f-sBu" kind="relationship" relationship="rootViewController" id="hs7-tw-vNd"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="7QS-FO-WSs" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-238" y="66"/>
</scene>
</scenes>
</document>
Loading

0 comments on commit 7afd965

Please sign in to comment.